ASP.NET Repeater的FindControl无法设置控件属性
- C# code
//绑定明细超链接 for (int i = 0; i < Repeater1.Items.Count; i ++ ) { Label lbl_id = (Label)Repeater1.Items[i].FindControl("Lbl_id"); string script = "javascript:openTab('联系人明细','/party/ContactEdit.aspx?contactID=" + lbl_id.Text + "')"; ((LinkButton)Repeater1.Items[i].FindControl("Btn_detail")).OnClientClick = script; }
- HTML code
<asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <tr> <td><asp:CheckBox ID="CheckBox1" runat="server" /></td> <td><%# Container.ItemIndex + 1 %></td> <td style="display:none"><asp:Label ID="Lbl_id" runat="server" Text='<%# Eval("contactID") %>'></asp:Label></td> <td><asp:Label ID="Lbl_name" runat="server" Text='<%# Eval("contactName") %>'></asp:Label></td> <td><asp:Label ID="Lbl_party_name" runat="server" Text='<%# Eval("tbl_law_party.partyName") %>'></asp:Label></td> <td><asp:Label ID="Lbl_telephone1" runat="server" Text='<%# Eval("telephone1") %>'></asp:Label></td> <td><asp:Label ID="Lbl_mobile1" runat="server" Text='<%# Eval("mobile1") %>'></asp:Label></td> <td><asp:HyperLink ID="Btn_detail" runat="server">明细</asp:HyperLink></td> </tr> </ItemTemplate> </asp:Repeater>
我通过后台findcontrol去设置linkbutton的 onclientclick属性,但是发现根本无法设置成功,onclientclick属性仍然为空,不知道是哪里出了问题。
[解决办法]
HyperLink ============((LinkButton)Repeater1.Items[i]...........?????
[解决办法]
因为你放置该Lable的td已经隐藏起来了。
<td style="display:none"><asp:Label ID="Lbl_id" runat="server" Text='<%# Eval("contactID") %>'></asp:Label></td>
改成试试
<td style="display:block"><asp:Label ID="Lbl_id" runat="server" Text='<%# Eval("contactID") %>'></asp:Label></td>
如果想隐藏该Label的话,可以通过控制该Label的Visible属性