How to implement linked controls in gridview

 

 

 

There is relationship between LCE Category and LCE Type. The items of LCE Type are gotten dynamically according to the selected item of LCE Category. When the certain item of LCE Category is chosen, the system will get dataset from the database via Store Procedure. The items of LCE Type will be updated.

Now let I explain the implementation using the traditional way in ASP.NET.

1.      Set ASPX

LCECategoryTypeDropDownList should set AutoPostBack attribute to TRUE.

<asp:TemplateField HeaderText="LCE Category" >

<ItemTemplate>

<asp:DropDownList ID="LCECategoryTypeDropDownList" runat="server" AutoPostBack="true"></asp:DropDownList>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText="LCE Type" >

<ItemTemplate>

    <asp:DropDownList ID="LCETypeDropDownList" runat="server" ></asp:DropDownList>

</ItemTemplate>

</asp:TemplateField>

 

2.      Set behind code

 

Please note, the AddHandler statement must be put in the RowCreated Method. If you put it into the RowDataBound method instead, it doesn’t work.

Private Sub profileDetailGridView_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles profileDetailGridView.RowCreated

Dim LCECategoryTypeDropDownList As DropDownList

 

If e.Row.RowType = DataControlRowType.DataRow Then

LCECategoryTypeDropDownList = CType(e.Row.FindControl("LCECategoryTypeDropDownList"), DropDownList)

 

           

AddHandler LCECategoryTypeDropDownList.SelectedIndexChanged, AddressOf CategoryTypeDropDownList_SelectedIndexChanged

      End If

End Sub

 

I quote Parent twice in the following snippet. The first Parent is to get Cell which includes current DropDowList. The second Parent is to get Parent of Cell, Row.

Protected Sub CategoryTypeDropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)

 

Dim CategoryDropDownList As DropDownList = CType(sender, DropDownList)

      Dim LCETypeDropDownList As DropDownList

 

      If CategoryDropDownList IsNot Nothing Then

        LCETypeDropDownList = CType(CategoryDropDownList.Parent.Parent.FindControl("LCETypeDropDownList"), DropDownList)

     

‘’’ get dataset and bind to the controls

 

      End If

End Sub

 

If you have any questions, please feel free to let me know.

Thanks.

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值