<asp:ListView ID="lsvLanguage" runat="server"
ItemPlaceholderID="itmHolder"
OnItemCommand="lsvLanguage_ItemCommand">
<LayoutTemplate>
<asp:PlaceHolder ID="itmHolder" runat="server">
</asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<div class="form_fields" style="width: 3%; padding-top: 0;">
<asp:LinkButton ID="lbtnCommand" runat="server"
CommandName="Language">
<asp:CheckBox ID="chkLanguage" CssClass="styled"
Checked='<%#Eval("IS_DEFAULT") %>'
runat="server" />
</asp:LinkButton>
</div>
<div class="form_fields" style="width: 10%;">
<asp:Label ID="lblDetailId" Visible="false" runat="server"
Text='<%#Eval("PARAM_DETAIL_ID") %>'>
</asp:Label>
<asp:Label ID="lblLanguage" runat="server"
Text='<%#Eval("PARAM_VALUE") %>'>
</asp:Label>
<asp:Label ID="lblLanguageKey" runat="server"
Text='<%#Eval("PARAM_KEY") %>' Visible="false">
</asp:Label>
</div>
</ItemTemplate>
</asp:ListView>
我有上面的list控件和itemcommand事件。它在Firefox和Chrome中运行良好,但在Internet Explorer 8中运行良好。
答案 0 :(得分:0)
在进入我的回答之前,我想知道你为什么要在LinkButton中嵌入CheckBox?这可能是你问题的一部分。
至于手头的实际问题,由于LinkButton正在触发命令,您应该只需将OnCommand事件处理程序直接添加到LinkButton即可。如果需要行索引,请将其作为commadn参数传递,如下所示:
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Language" CommandArgument='<%#Container.ItemIndex%>' OnCommand="LinkButton1_Command" ...>
然后在你的代码背后:
protected void LinkButton1_Command(object sender, CommandEventArgs e)
{
GridViewRow row = GridView1.Rows[(int)e.CommandArgument];
if (row != null)
{
//do some logic on the row
}
//do some other logic outside of the row
}