SqlDataSource的Selecting事件使用心得

来源:互联网 发布:万夫莫开贾克斯cdk淘宝 编辑:程序博客网 时间:2024/06/08 13:43

         页面(下文称父页面)实现功能是对多地用户的操作,具体如下:点击按钮,弹出有树状地区的模式对话框供选择,选择完地区返回后父页面立即显示出该地区的用户,之后对用户进行操作。

        实现思路:父页面上放GridView,SqlDataSource,用HiddenField接收地区信息,在SqlDataSource的Selecting事件中更新SelectCommand的参数,达到更新GridView显示数据的目的。

        然而在编码的过程中遇到问题:当地区信息返回至父页面后,Selecting事件无法激活,尽管在Page_Load方法中已对SelectCommand进行了重新赋值。于是给HiddenField添加ValueChanged事件,在该事件中对SelectCommand重新赋值,激活Selecting事件。

代码片段如下:

protected void Page_Load(object sender, EventArgs e)        {                       if (HiddenField1.Value != "")   // 选择了机构,则显示该机构的用户            {                ViewState["orgid"] = HiddenField1.Value;    // 保存机构代码                HiddenField1.Value = "";            }        }



protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)        {            // 创建并添加存储过程的查询参数                SqlParameter pa = new SqlParameter("@orgID", DbType.String);                pa.Direction = ParameterDirection.Input;                pa.Value = ViewState["orgid"].ToString().Trim();                e.Command.Parameters.Add(pa);        }

protected void HiddenField1_ValueChanged(object sender, EventArgs e)        {            if (ViewState["orgid"] != null)   // 选择了机构,则显示该机构的用户            {                SqlDataSource1.SelectCommand = "select_user";                SqlDataSource1.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;            }        }


原创粉丝点击