背景:
阅读新闻

sharepoint popup窗体间传值和子画面表格数据排序

  作者: 今日评论: [字体: ]

-----父窗体------

<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>

<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>

<%@ Import Namespace="Microsoft.SharePoint" %>

<%@ Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<%@ Register TagPrefix="MySharePoint" Namespace="SharePointProject2" Assembly="$SharePoint.Project.AssemblyFullName$" %>

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CaseAdd.ascx.cs" Inherits="SharePointProject2.CONTROLTEMPLATES.CaseAdd" %>



<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>



<style type="text/css">

    td {

        min-height: 40px;

    }

</style>


<script>

    function openDialogAndReceiveData(tUrl, tTitle)

    {

        var options = {

            url: tUrl,

            title: tTitle,

            dialogReturnValueCallback: onPopUpCloseCallBackWithData

        };

        SP.UI.ModalDialog.showModalDialog(options);

    }


    function onPopUpCloseCallBackWithData(result, returnValue)

    {

        if (result == SP.UI.DialogResult.OK)

        {

            SP.UI.Status.removeAllStatus(true);

            var sId = SP.UI.Status.addStatus("Data successfully populated to text boxes from Pop-up");

            SP.UI.Status.setStatusPriColor(sId, 'green');

            document.getElementById('<%= txtid.ClientID %>').value = returnValue[0];

            document.getElementById('<%= txtLawyerName.ClientID %>').value = returnValue[1];

            document.getElementById('<%= txtCountry.ClientID %>').value = returnValue[2];

            document.getElementById('<%= txtCity.ClientID %>').value = returnValue[3];

        }

        else if (result == SP.UI.DialogResult.cancel)

        {

            SP.UI.Status.removeAllStatus(true);

            var sId = SP.UI.Status.addStatus("You have cancelled the Operation !!!");

            SP.UI.Status.setStatusPriColor(sId, 'yellow');

        }

    }


    function openLawyerSel()

    {

        openDialogAndReceiveData("/_layouts/15/SelLawyer.aspx", "选择律师");

    }


</script>




<div>

    <input id="txtid" type="text" value="txtid" runat="server" />

</div>

<div>

    <input id="txtLawyerName" type="text" value="txtLawyerName" runat="server" />

</div>

<div>

    <input id="txtCountry" type="text" value="txtCountry" runat="server" />

</div>

<div>

    <input id="txtCity" type="text" value="txtCity" runat="server" />

</div>

<div>

    <input id="btnClientOk2" type="button" value="open popup application page" onclick="openLawyerSel()" />

</div>




--popup子窗体-----
<%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Assembly Name="Microsoft.Web.CommandUI, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SelLawyer.aspx.cs" Inherits="SharePointProject2.Layouts.SelLawyer" DynamicMasterPageFile="~masterurl/default.master" %>

<%@ Import Namespace="System.Data" %>


<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">


    <style type="text/css">
        td {
            min-height: 40px;
        }

        .table {
            border: 1px double #A3D1AD;
            margin-top: 5px;
            margin-bottom: 5px;
            background: #FFFFFF;
            font-size: 12px;
        }

        /*选中时式样*/
        .TR_BG {
            background-color: #E4FCCB;
            font-size: 12px;
        }

        /*非选中时式样*/
        .TR_BG_list {
            background-color: #F4FFE8;
            font-size: 12px;
        }

        .sys_topBg {
            color: #47974B;
            font-size: 14px;
            text-decoration: none;
            font-weight: bold;
        }
    </style>

    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="/_layouts/SP.UI.Dialog.js"></script>


    <script type="text/javascript">
        function closePopupAndPassData()
        {
            var popData = [];
            popData[0] = document.getElementById('<%= txtLawyerName1.ClientID %>').value;
            popData[1] = document.getElementById('<%= txtCountry1.ClientID %>').value;
            popData[2] = document.getElementById('<%= txtCity1.ClientID %>').value;
            SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.OK, popData);
        }

        function popok(id, LawyerName, Country, City)
        {
            var popData = [];
            popData[0] = id;
            popData[1] = LawyerName;
            popData[2] = Country;
            popData[3] = City;
            SP.UI.ModalDialog.commonModalDialogClose(SP.UI.DialogResult.OK, popData);
        }


        function SelectAll(f, mode)
        {
            if (mode == true)
            {
                for (i = 0; i < f.length; i++)
                {
                    if (f.elements[i].type == "checkbox")
                    {
                        f.elements[i].checked = true;
                    }
                }
            }
            else
            {
                for (i = 0; i < f.length; i++)
                {
                    if (f.elements[i].type == "checkbox")
                    {
                        f.elements[i].checked = false;
                    }
                }
            }
        }


        //CSS背景控制

        function overColor(Obj)
        {
            var elements = Obj.childNodes;
            for (var i = 0; i < elements.length; i++)
            {
                elements[i].className = "TR_BG"
                Obj.bgColor = ""; //颜色要改
            }
        }


        function outColor(Obj)
        {
            var elements = Obj.childNodes;
            for (var i = 0; i < elements.length; i++)
            {
                elements[i].className = "TR_BG_list";
                Obj.bgColor = "";
            }
        }

    </script>

</asp:Content>

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <div>
        <input id="btnClientOk2" type="button" value="Client Side OK and pass Value to Base Page" onclick="closePopupAndPassData()" />
    </div>
    <div>
        <input id="txtLawyerName1" type="text" value="Lawyer Name1" runat="server" />
    </div>
    <div>
        <input id="txtCountry1" type="text" value="Lawyer Country1" runat="server" />
    </div>
    <div>
        <input id="txtCity1" type="text" value="Lawyer City1" runat="server" />
    </div>

    <div>

        <asp:Repeater ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand" OnItemDataBound="DataList1_ItemDataBound">
            <HeaderTemplate>
                <table id="tablist" width="99%" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#FFFFFF" class="table">
                    <tr class="TR_BG">
                        <td align="left" valign="middle" class="sys_topBg" width="65">
                            <asp:LinkButton ID="LinkButton4" runat="server" CommandName="sortlist" CommandArgument="ID">id</asp:LinkButton>
                        </td>

                        <td align="center" valign="middle" class="sys_topBg" width="90">
                            <asp:LinkButton ID="LinkButton5" runat="server" CommandName="sortlist" CommandArgument="Title">Title</asp:LinkButton>
                        </td>
                        </td>
                        <td align="center" valign="middle" class="sys_topBg" width="90">
                            <asp:LinkButton ID="lnkID" runat="server" CommandName="sortlist" CommandArgument="LawyerName">LawyerName</asp:LinkButton>
                        </td>
                        <td align="center" valign="middle" class="sys_topBg" width="90">
                            <asp:LinkButton ID="LinkButton2" runat="server" CommandName="sortlist" CommandArgument="Country">Country</asp:LinkButton>
                        </td>
                        <td align="center" valign="middle" class="sys_topBg" width="90">
                            <asp:LinkButton ID="LinkButton3" runat="server" CommandName="sortlist" CommandArgument="City">City</asp:LinkButton>
                        </td>
                        <td align="center" valign="middle" class="sys_topBg" width="60">选择</td>
                        <td align="center" valign="middle" class="sys_topBg" width="60">削除
                            <input name="Checkboxc" type="checkbox" onclick="javascript: SelectAll(this.form, this.checked);" />
                        </td>
                    </tr>
            </HeaderTemplate>

            <ItemTemplate>
                <tr class="TR_BG_list" onmouseover="overColor(this)" onmouseout="outColor(this)">
                    <td align="left" valign="middle" height="20"><%#((DataRowView)Container.DataItem)["ID"]%></td>
                    <td align="left" valign="middle"><%#((DataRowView)Container.DataItem)["Title"]%></td>
                    <td align="left" valign="middle"><%#((DataRowView)Container.DataItem)["LawyerName"]%></td>
                    <td align="left" valign="middle"><%#((DataRowView)Container.DataItem)["Country"]%></td>
                    <td align="left" valign="middle"><%#((DataRowView)Container.DataItem)["City"]%></td>

                    <td align="center" valign="middle" class="sys_topBg" width="60">
                        <input id="Button1" type="button" value="选择"
                            onclick="javascript: popok('<%#((DataRowView)Container.DataItem)["ID"]%>','<%#((DataRowView)Container.DataItem)["LawyerName"]%>','<%#((DataRowView)Container.DataItem)["Country"]%>','<%#((DataRowView)Container.DataItem)["City"]%>');" />
                    </td>
                    <td align="center" valign="middle"><%#((DataRowView)Container.DataItem)["Op"]%></td>
                </tr>
            </ItemTemplate>

            <FooterTemplate>
                </table>
            </FooterTemplate>

        </asp:Repeater>


    </div>


</asp:Content>

<asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
    应用程序页
</asp:Content>

<asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server">
    我的应用程序页
</asp:Content>



-----popup子窗体.cs 文件-----

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Client;
using System.Data;
using System.Web.UI.WebControls;

namespace SharePointProject2.Layouts
{
    public partial class SelLawyer : LayoutsPageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Response.CacheControl = "no-cache";
            if (!IsPostBack)
            {
                string sortlnkBtnName = "lnkID";
                string sortColName = "id";
                string sortType = "asc";
                this.BindListData(sortlnkBtnName, sortColName, sortType);
            }
        }

        private void BindListData(string sortlnkBtnName, string sortColName, String sortType)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID");
            dt.Columns.Add("Title");
            dt.Columns.Add("LawyerName");
            dt.Columns.Add("Country");
            dt.Columns.Add("City");

            using (SPSite site = new SPSite(SPContext.Current.Site.Url))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    DataRow dr = null;
                    SPList list = web.Lists["LawyerMaster"];
                    SPQuery myquery = new SPQuery();
                    //myquery.Query = "";

                    myquery.Query = String.Format("<OrderBy><FieldRef Name='{0}' Ascending='{1}' /></OrderBy>", sortColName, sortType == "desc" ? "FALSE" : "TRUE");
                    //myquery.Query = "<OrderBy><FieldRef Name='ItemChildCount' Ascending='FALSE' /></OrderBy>";
                    SPListItemCollection queryResultItems = list.GetItems(myquery);
                    foreach (SPListItem row in queryResultItems)
                    {
                        if (row != null)
                        {
                            dr = dt.NewRow();
                            dr["ID"] = GetItemValue(row, "ID");
                            dr["Title"] = GetItemValue(row, "Title");
                            dr["LawyerName"] = GetItemValue(row, "LawyerName");
                            dr["Country"] = GetItemValue(row, "Country");
                            dr["City"] = GetItemValue(row, "City");
                            dt.Rows.Add(dr);
                        }
                    }
                }
            }

            if (dt != null && dt.Rows.Count > 0)
            {
                dt.Columns.Add("op", typeof(string));
                for (int k = 0; dt.Rows.Count > k; k++)
                {
                    dt.Rows[k]["op"] = "<input name=\"Checkbox1\" type=\"checkbox\" value=" + dt.Rows[k]["ID"].ToString() + "  runat=\"server\" />";
                }
            }

            ViewState["sortlnkBtnName"] = sortlnkBtnName;
            ViewState["sortColName"] = sortColName;
            ViewState["sortType"] = sortType;

            DataList1.DataSource = dt;
            DataList1.DataBind();
        }

        private string GetItemValue(SPListItem row, string fieldName)
        {
            if (row[fieldName] != null)
            {
                return row[fieldName].ToString();
            }
            else
            {
                return "";
            }
        }


        protected void DataList1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Header)
            {
                string sortlnkBtnName = ViewState["sortlnkBtnName"].ToString();
                string sortColName = ViewState["sortColName"].ToString();
                string sortType = ViewState["sortType"].ToString();
                LinkButton lnkBtn = (LinkButton)e.Item.FindControl(sortlnkBtnName);
                if (sortType == "desc")
                {
                    lnkBtn.Text = lnkBtn.Text + "▼";
                }
                else
                {
                    lnkBtn.Text = lnkBtn.Text + "▲";
                }
                lnkBtn.CommandArgument = sortColName + ";" + sortType;
            }
        }

        protected void DataList1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Header)
            {
                //can sort
                if (e.CommandName == "sortlist")
                {
                    LinkButton lnkBtn = (LinkButton)e.CommandSource;
                    string[] args = e.CommandArgument.ToString().Split(new string[] { ";" }, StringSplitOptions.None);
                    string sortColName = args[0];
                    string sortType = args.Length > 1 ? args[1] : "desc";
                    if (sortType == "desc")
                    {
                        sortType = "asc";
                    }
                    else
                    {
                        sortType = "desc";
                    }
                    this.BindListData(lnkBtn.ID, sortColName, sortType);
                }
            }
        }


    }
}






来源:
录入日期:[2017/12/25 4:14:00]
收藏 推荐 打印 | 录入:mikebai | 阅读:
文章评论      
正在加载评论列表...
评论表单加载中...