2011-05-12 77 views
0

我有一个DataGrid设置与项目列表显示,我有一个下拉列表中有三个选项,“15”结果,“25”结果和“全部”。我在cs OnSelectedIndexChanged中有一个方法,它应该改变DataGrid的分页设置,我已经检查了传递给该方法的值并且它是正确的,但是,当我运行应用程序并从下拉列表中选择一个选项时什么都没发生。限制在DataGrid的结果

有谁知道为什么会发生这种情况?只能在PageLoad上指定DataGrid分页吗?或者我刚刚完全接近这个问题错误的方式.....

在此先感谢您的帮助!

这是我的方法的代码背后

protected void ddlShowIncomplete_OnSelectedIndexChanged(Object sender,EventArgs e) 
    { 
     if (ddlShowIncomplete.SelectedValue == "15") 
     { 
      dgRequests.AllowPaging = true; 
      dgRequests.PageSize = 5; 
     } 
     else if (ddlShowIncomplete.SelectedValue == "25") 
     { 
      dgRequests.AllowPaging = true; 
      dgRequests.PageSize = 2; 
     } 
     else if (ddlShowIncomplete.SelectedValue == "All") 
     { 
      dgRequests.AllowPaging = false; 
     } 
     else 
     { 

     } 
    } 

回答

2

您需要更改页面大小后重新绑定数据网格。添加

dgRequests.DataSource = GetMyDataSource(); 
dgRequests.DataBind(); 

在您的方法结束。

+0

哇,真不敢相信我忘了。谢谢!!! – korymiller 2011-05-12 18:53:38

+0

@korymiller不要担心,它会发生!希望这能解决你的问题。 – YetAnotherUser 2011-05-12 19:00:03

+0

我也必须重申声明数据源,但是它确实解决了问题! – korymiller 2011-05-12 19:03:31

0

尝试使用OnRowCommand事件

例如:

<asp:GridView ID="GridView1" runat="server" OnPageIndexChanging="NewxPage" OnRowCommand="GridViewUpdate" /> 

protected void GridViewUpdate(object sender, GridViewCommandEventArgs e) 
    { 


    }