我有一个用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填充得很好。但是,我希望在页面加载事件期间自动发生此过滤,而无需在页面加载后手动单击按钮。
我尝试在页面事件期间执行按钮单击事件,但过滤不会发生。请告诉我实现这一目标的最佳方法。
由于
答案 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){
}