如何根据多个下拉框选择的值过滤网格视图的数据

时间:2014-03-18 02:30:01

标签: c# asp.net

我有一个用C#编写的aspx webform。
此页面有三个下拉框。这些下拉框从相应的表中加载Department,Site和Team的值。

根据登录用户的权限,将在页面加载期间从这三个下拉框中预选一个项目。在同一页面上,我有一个gridview,其数据应根据这三个下拉框的选定值进行过滤。

gridview数据源的sql应该是这样的:select * from abc where Department = <selecteditem> and Site = <selecteditem> and Team = <selecteditem>

我在页面上有一个名为 Apply Filter 的按钮,它获取所选项目并构造sql,并且gridview填充得很好。但是,我希望在页面加载事件期间自动发生此过滤,而无需在页面加载后手动单击按钮。

我尝试在页面事件期间执行按钮单击事件,但过滤不会发生。请告诉我实现这一目标的最佳方法。

由于

2 个答案:

答案 0 :(得分:0)

我认为你必须这样做

`protected void DropDownBoxDepartment_SelectedIndexChanged(object sender, EventArgs e)
    {
    // Here gives the DataSource for the DataGrid View for the DEPARTMENTSelection   

    }

 protected void DropDownBoxSite_SelectedIndexChanged(object sender, EventArgs e)
    {
    // Here gives the DataSource for the DataGrid View for the SITE Selection  (or Department and Site Selection whatever you want)   

    }

      protected void DropDownBoxTeam_SelectedIndexChanged(object sender, EventArgs e)
    {
    // Here gives the DataSource for the DataGrid View for the TEAM Selection  (or Department, Site and Team Selection whatever you want)   

    }`

希望本准则能帮助你......如果我理解你的问题那么好。

答案 1 :(得分:0)

在Page_load事件中,执行以下操作:

获取当前登录用户的用户名:

String name = System.Web.HttpContext.Current.User.Identity.Name;

我希望你能用用户名找出用户的权限级别。

根据权限级别设置三个不同下拉列表中所需的选定索引值,如下(样本)

departmentDropDownList.SelectedIndex=1;

为所有三个下拉菜单设置所需的值后,执行网格DataBind()

注意:我非常确定您不会要求所有回发都使用此自动GridView DataBind。如果这是真的,那么将上面的Page_Load代码放在下面的条件中,这样只有初始页面加载才会发生这种自动过滤。

if(!IsPostBack){

}