Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GridView排序-是否有更好的方法在asp.net(适用于sharepoint)中执行GridView排序?_Asp.net_Sharepoint 2010 - Fatal编程技术网

GridView排序-是否有更好的方法在asp.net(适用于sharepoint)中执行GridView排序?

GridView排序-是否有更好的方法在asp.net(适用于sharepoint)中执行GridView排序?,asp.net,sharepoint-2010,Asp.net,Sharepoint 2010,有没有更好的方法对这个数据网格进行排序 这确实有效,但是它似乎有点不可重用 如果你有任何想法,或更好的方法来处理这个问题,请让我知道 下面是代码。如果你有什么想法,请告诉我 protected void grdPropMgrLeaseAgents_Sorting(object sender, GridViewSortEventArgs e) { string sortExpression = "A"; if (ViewState[e.SortEx

有没有更好的方法对这个数据网格进行排序

这确实有效,但是它似乎有点不可重用

如果你有任何想法,或更好的方法来处理这个问题,请让我知道

下面是代码。如果你有什么想法,请告诉我

    protected void grdPropMgrLeaseAgents_Sorting(object sender, GridViewSortEventArgs e)
    {
        string sortExpression = "A";

        if (ViewState[e.SortExpression + "_sort"] != null)
        {
            sortExpression = ViewState[e.SortExpression + "_sort"].ToString();
        }

        List<Person> list = (List<Person>)ViewState["propertyManagersAndLeasingAgents"];

        if (sortExpression == "A")
        {
            if (e.SortExpression == "EmpFullName") list.Sort((x, y) => string.Compare(x.EmpFullName, y.EmpFullName));
            if (e.SortExpression == "FirstName") list.Sort((x, y) => string.Compare(x.FirstName, y.FirstName));
            if (e.SortExpression == "LastName") list.Sort((x, y) => string.Compare(x.LastName, y.LastName));
            if (e.SortExpression == "DepartmentName") list.Sort((x, y) => string.Compare(x.DepartmentName, y.DepartmentName));
            if (e.SortExpression == "MarketName") list.Sort((x, y) => string.Compare(x.MarketName, y.MarketName));
            if (e.SortExpression == "Title") list.Sort((x, y) => string.Compare(x.Title, y.Title));
            if (e.SortExpression == "Roles") list.Sort((x, y) => string.Compare(x.Roles, y.Roles));
            if (e.SortExpression == "CellPhone") list.Sort((x, y) => string.Compare(x.CellPhone, y.CellPhone));
            if (e.SortExpression == "OfficePhone") list.Sort((x, y) => string.Compare(x.OfficePhone, y.OfficePhone));
            if (e.SortExpression == "EmailAddress") list.Sort((x, y) => string.Compare(x.EmailAddress, y.EmailAddress));
            if (e.SortExpression == "City") list.Sort((x, y) => string.Compare(x.City, y.City));
            if (e.SortExpression == "State") list.Sort((x, y) => string.Compare(x.State, y.State));
            if (e.SortExpression == "PropertyName") list.Sort((x, y) => string.Compare(x.PropertyName, y.PropertyName));
            if (e.SortExpression == "PropertyStreet") list.Sort((x, y) => string.Compare(x.PropertyStreet, y.PropertyStreet));
            if (e.SortExpression == "DisplayName") list.Sort((x, y) => string.Compare(x.DisplayName, y.DisplayName));
            if (e.SortExpression == "ZipCode") list.Sort((x, y) => string.Compare(x.ZipCode, y.ZipCode));
        }
        else
        {
            if (e.SortExpression == "EmpFullName") list.Sort((y, x) => string.Compare(x.EmpFullName, y.EmpFullName));
            if (e.SortExpression == "FirstName") list.Sort((y, x) => string.Compare(x.FirstName, y.FirstName));
            if (e.SortExpression == "LastName") list.Sort((y, x) => string.Compare(x.LastName, y.LastName));
            if (e.SortExpression == "DepartmentName") list.Sort((y, x) => string.Compare(x.DepartmentName, y.DepartmentName));
            if (e.SortExpression == "MarketName") list.Sort((y, x) => string.Compare(x.MarketName, y.MarketName));
            if (e.SortExpression == "Title") list.Sort((y, x) => string.Compare(x.Title, y.Title));
            if (e.SortExpression == "Roles") list.Sort((y, x) => string.Compare(x.Roles, y.Roles));
            if (e.SortExpression == "CellPhone") list.Sort((y, x) => string.Compare(x.CellPhone, y.CellPhone));
            if (e.SortExpression == "OfficePhone") list.Sort((y, x) => string.Compare(x.OfficePhone, y.OfficePhone));
            if (e.SortExpression == "EmailAddress") list.Sort((y, x) => string.Compare(x.EmailAddress, y.EmailAddress));
            if (e.SortExpression == "City") list.Sort((y, x) => string.Compare(x.City, y.City));
            if (e.SortExpression == "State") list.Sort((y, x) => string.Compare(x.State, y.State));
            if (e.SortExpression == "PropertyName") list.Sort((y, x) => string.Compare(x.PropertyName, y.PropertyName));
            if (e.SortExpression == "PropertyStreet") list.Sort((y, x) => string.Compare(x.PropertyStreet, y.PropertyStreet));
            if (e.SortExpression == "DisplayName") list.Sort((y, x) => string.Compare(x.DisplayName, y.DisplayName));
            if (e.SortExpression == "ZipCode") list.Sort((y, x) => string.Compare(x.ZipCode, y.ZipCode));
        }

        ViewState["propertyManagersAndLeasingAgents"] = list;

        this.grdPropMgrLeaseAgents.DataSource = list;
        this.grdPropMgrLeaseAgents.DataBind();

        if (sortExpression == "A")
        {
            ViewState[e.SortExpression + "_sort"] = "D";
        }
        else
        {
            ViewState[e.SortExpression + "_sort"] = "A";
        }
    }
受保护的无效grdPropMgrLeaseAgents\u排序(对象发送方、GridViewSortEventArgs e)
{
字符串sortExpression=“A”;
if(ViewState[e.SortExpression+“_sort”]!=null)
{
sortExpression=ViewState[e.sortExpression+“_sort”].ToString();
}
列表=(列表)视图状态[“PropertyManager和LeasingAgent”];
如果(sortExpression==“A”)
{
if(e.SortExpression==“EmpFullName”)list.Sort((x,y)=>string.Compare(x.EmpFullName,y.EmpFullName));
if(e.SortExpression==“FirstName”)list.Sort((x,y)=>string.Compare(x.FirstName,y.FirstName));
if(e.SortExpression==“LastName”)list.Sort((x,y)=>string.Compare(x.LastName,y.LastName));
if(e.SortExpression==“DepartmentName”)list.Sort((x,y)=>string.Compare(x.DepartmentName,y.DepartmentName));
if(e.SortExpression==“MarketName”)list.Sort((x,y)=>string.Compare(x.MarketName,y.MarketName));
if(e.SortExpression==“Title”)list.Sort((x,y)=>string.Compare(x.Title,y.Title));
if(e.SortExpression==“Roles”)list.Sort((x,y)=>string.Compare(x.Roles,y.Roles));
if(e.SortExpression==“mobile”)list.Sort((x,y)=>string.Compare(x.mobile,y.mobile));
if(e.SortExpression==“OfficePhone”)list.Sort((x,y)=>string.Compare(x.OfficePhone,y.OfficePhone));
if(e.SortExpression==“EmailAddress”)list.Sort((x,y)=>string.Compare(x.EmailAddress,y.EmailAddress));
if(e.SortExpression==“City”)list.Sort((x,y)=>string.Compare(x.City,y.City));
if(e.SortExpression==“State”)list.Sort((x,y)=>string.Compare(x.State,y.State));
if(e.SortExpression==“PropertyName”)list.Sort((x,y)=>string.Compare(x.PropertyName,y.PropertyName));
if(e.SortExpression==“PropertyStreet”)list.Sort((x,y)=>string.Compare(x.PropertyStreet,y.PropertyStreet));
if(e.SortExpression==“DisplayName”)list.Sort((x,y)=>string.Compare(x.DisplayName,y.DisplayName));
if(e.SortExpression==“ZipCode”)list.Sort((x,y)=>string.Compare(x.ZipCode,y.ZipCode));
}
其他的
{
if(e.SortExpression==“EmpFullName”)list.Sort((y,x)=>string.Compare(x.EmpFullName,y.EmpFullName));
if(e.SortExpression==“FirstName”)list.Sort((y,x)=>string.Compare(x.FirstName,y.FirstName));
if(e.SortExpression==“LastName”)list.Sort((y,x)=>string.Compare(x.LastName,y.LastName));
if(e.SortExpression==“DepartmentName”)list.Sort((y,x)=>string.Compare(x.DepartmentName,y.DepartmentName));
if(e.SortExpression==“MarketName”)list.Sort((y,x)=>string.Compare(x.MarketName,y.MarketName));
if(e.SortExpression==“Title”)list.Sort((y,x)=>string.Compare(x.Title,y.Title));
if(e.SortExpression==“Roles”)list.Sort((y,x)=>string.Compare(x.Roles,y.Roles));
if(e.SortExpression==“mobile”)list.Sort((y,x)=>string.Compare(x.mobile,y.mobile));
if(e.SortExpression==“OfficePhone”)list.Sort((y,x)=>string.Compare(x.OfficePhone,y.OfficePhone));
if(e.SortExpression==“EmailAddress”)list.Sort((y,x)=>string.Compare(x.EmailAddress,y.EmailAddress));
if(e.SortExpression==“City”)list.Sort((y,x)=>string.Compare(x.City,y.City));
if(e.SortExpression==“State”)list.Sort((y,x)=>string.Compare(x.State,y.State));
if(e.SortExpression==“PropertyName”)list.Sort((y,x)=>string.Compare(x.PropertyName,y.PropertyName));
if(e.SortExpression==“PropertyStreet”)list.Sort((y,x)=>string.Compare(x.PropertyStreet,y.PropertyStreet));
if(e.SortExpression==“DisplayName”)list.Sort((y,x)=>string.Compare(x.DisplayName,y.DisplayName));
if(e.SortExpression==“ZipCode”)list.Sort((y,x)=>string.Compare(x.ZipCode,y.ZipCode));
}
ViewState[“PropertyManager和LeasingAgent”]=列表;
this.grdpropmgrleagents.DataSource=list;
this.grdpropmgrleagents.DataBind();
如果(sortExpression==“A”)
{
视图状态[e.SortExpression+“_sort”]=“D”;
}
其他的
{
ViewState[e.SortExpression+“_sort”]=“A”;
}
}

您是否尝试过SPGridView。我使用了SPGridView和LinqDataSource。所有的功能(排序、分页、过滤)都已完成

以下是一个例子:- A.精神景观

 <SharePoint:SPGridView runat="server" ID="spgvUserTrainingLists" AutoGenerateColumns="false"
                                DataSourceID="linqDsEmployeeTrainingLists" DataKeyNames="RowId" OnRowDataBound="spgvUserTrainingLists_RowDataBound"
                                AllowSorting="true" AllowPaging="true" PageSize="15" AllowFiltering="true" FilteredDataSourcePropertyName="Where"
                                FilteredDataSourcePropertyFormat='{1} == "{0}"' FilterDataFields=",TrainingType,,Trainer,Status">
                                <Columns>
                                    <SharePoint:SPBoundField HeaderText="Ref #" SortExpression="RefNo" DataField="RefNo" />
                                    <SharePoint:SPBoundField HeaderText="Type" SortExpression="TrainingType" DataField="TrainingType" />
                                    <asp:TemplateField HeaderText="Training" SortExpression="TrainingTitle">
                                        <ItemTemplate>
                                            <asp:HyperLink ID="hlTrainingDetail" runat="server" Text='<%# Eval("TrainingTitle") %>'
                                                NavigateUrl="#" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <SharePoint:SPBoundField HeaderText="Trainer" SortExpression="Trainer" DataField="Trainer" />
                                    <SharePoint:SPBoundField HeaderText="Status" SortExpression="Status" DataField="Status" />
                                    <asp:TemplateField>
                                        <ItemTemplate>
                                            <asp:ImageButton ID="imgDelete" ImageUrl="~/_layouts/images/DELITEM.GIF" runat="server"
                                                UseSubmitBehaviour="false" />
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                </Columns>
                                <EmptyDataTemplate>
                                    No training yet.
                                </EmptyDataTemplate>
                            </SharePoint:SPGridView>
                            <SharePoint:SPGridViewPager ID="SPGridViewPager1" runat="server" GridViewId="spgvUserTrainingLists" />
                            <aspweb:LinqDataSource runat="server" ID="linqDsEmployeeTrainingLists" OnSelecting="linqDs_Selecting" />
尝试一下,因为您正在使用SharePoint。
希望这能有所帮助。

尽管我很想使用sharepoint gridview,但它不会像以前那样工作,因为我正在从代码背后对数据进行数据绑定。我试过了,但是当我删除了数据源时,我把自己的代码挂在了后台,但它不起作用,因为它需要一种排序方法。然后我发现自己也在同一个地方。我也在从代码背后进行数据绑定。请看linqDs_选择事件。我正在绑定来自业务层的数据。LinqDataSource控件在那里处理排序、分页和筛选。我真的鼓励你使用它。另一种方法是使用SPGridView+ObjectDataSource+DataTable。您还有其他从业务层运行此功能的示例吗?您在寻找什么样的示例?。我在我的应用程序中使用了相同的技术,这是因为我的应用程序是一个数据驱动的应用程序。连接到BLL是在LinqDataSource选择事件中完成的。
protected void spgvUserTrainingLists_RowDataBound(object sender, GridViewRowEventArgs e)
    {
         if (e.Row.RowType == DataControlRowType.Header)
        {
            if (!string.IsNullOrEmpty(spgvUserTrainingLists.FilterFieldName))
            {
                for (int i = 0; i < spgvUserTrainingLists.Columns.Count; i++)
                {
                    DataControlField field = spgvUserTrainingLists.Columns[i];

                    if (field.SortExpression == spgvUserTrainingLists.FilterFieldName)
                    {
                        Image filterIcon = new Image();
                        filterIcon.ImageUrl = "/_layouts/images/filter.gif";
                        filterIcon.Style[HtmlTextWriterStyle.MarginLeft] = "2px";

                        Literal headerText = new Literal();
                        headerText.Text = field.HeaderText;

                        PlaceHolder panel = new PlaceHolder();
                        panel.Controls.Add(headerText);
                        panel.Controls.Add(filterIcon);

                        e.Row.Cells[i].Controls[0].Controls.Add(panel);

                        break;
                    }
                }
            }
        }
    }
 protected void linqDs_Selecting(object sender, LinqDataSourceSelectEventArgs e)
    {
        object parameter = null;

        if (e.SelectParameters.TryGetValue("employee", out parameter))
        {
            e.Result = DefaultBLL.GetEmployeeTrainingLists(parameter.ToString());
        }
    }