数据控件(GridView)使用模板列响应子控件(dropdownlist)事件

换了一个东家后,终于可以在上班时,偷偷发布一下BLOG文章了。转正题:
通常在数据控件(比如:datagird,gridview)里使用模板列,并向模板列里添加子控件(如:dropdownlist,checkbox...),是很常见的事情,有时候我们会需要直接使用到子控件自带的事件来处理问题,若干年前,刚接触.NET的时候,对这样的处理还不太了解,也没查到太多资料来处理这类问题,通常都是使用foreach循环数据控件的rows,用FindControl方式获得每个模板列里的子控件的值。如果需要知道某一行里某一个子控件的值,就不太好处理了。现在接触.NET 久了,大概也掌握了解决这类问题的方法,如下:

.aspx代码:(部分)
----------------------------------------
 <div>
     <asp:GridView ID="GridView" runat="server" AutoGenerateColumns="False" OnRowDataBound="GridView_RowDataBound" OnRowUpdating="GridView_RowUpdating">
         <Columns>
             <asp:TemplateField HeaderText="abc">
                 <ItemTemplate>
                     <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                         <asp:ListItem Value="1">a</asp:ListItem>
                         <asp:ListItem Value="2">b</asp:ListItem>
                         <asp:ListItem Value="3">c</asp:ListItem>
                     </asp:DropDownList>
                 </ItemTemplate>
             </asp:TemplateField>
             <asp:BoundField DataField="TreeNodeName" HeaderText="名字" SortExpression="TreeNodeName" />
         </Columns>
     </asp:GridView>
     </div>
这段代码里就是一个GridView的模板列里有一个DropDownList
.aspx.cs代码(部分)
-----------------------------------------------------------------------
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        DropDownList da = (DropDownList)sender;
       //得到DropDownList 选中的值
        string abc = da.SelectedValue;
        System.Web.UI.WebControls.GridViewRow dvr = (System.Web.UI.WebControls.GridViewRow)da.NamingContainer;
       //得到选中DropDownList 所在行的某字段值
        string bbbc = dvr.Cells[1].Text;
        //DropDownList db = (DropDownList)dvr.FindControl("DropDownList1");
        //db.SelectedIndex = da.SelectedIndex;
    }
DropDownList 的选中后的响应事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值