SqlDataSource的Selecting事件使用心得

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

        实现思路:父页面上放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;
            }

        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值