[英]change div display while checkbox checked in gridview using asp.net
我有绑定到数据库的gridview
。 我有一个checkbox
,我想用checkbox
选中值更改另一个div
display
属性。 这是我在asp.net中的后端代码,但是不起作用! 我该怎么解决?
protected void gv_sourceGalleryPic_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "checkPic")
{
CheckBox chkItem = (CheckBox)gv_sourceGalleryPic.FindControl("ck_checkGalleryPic_copyMove");
if (chkItem.Checked == true)
{
div1.Style.Add(HtmlTextWriterStyle.Display, "block");
}
}
}
据我所知,Asp.Net CheckBoxes没有名为CommandName
和CommandArgument
属性。 因此,您不能使用RowCommand
事件,该事件将在您更改选中状态时触发。 您应该使用一些简单的javascript代码,而不是下面的示例代码:
function hidediv(chk) {
var element = document.getElementById("div1");
if (chk.checked)
{ element.style.display = 'none'; }
}
然后在所有复选框的更改事件上触发此函数,如下所示:
onchange="hidediv(this);"
顺便说一句,如果您只想更改显示div部分,最好使用html输入标签而不是asp.net复选框。
尝试找到Div
HtmlGenericControl div1= (HtmlGenericControl )gv_sourceGalleryPic.FindControl("div1");
您可以将OnCheckedChanged
事件用于checkbox
而不是onRowCommand
如下所示:
标记
<asp:GridView runat="server" ID="gv_sourceGalleryPic">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="ck_checkGalleryPic_copyMove" runat="server"
OnCheckedChanged="chkBox_CheckedChanged" AutoPostBack="true" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
后面的代码
protected void chkBox_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk = sender as CheckBox;
if (chk.Checked)
{
div1.Style.Add(HtmlTextWriterStyle.Display, "block");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.