我已经创建了一个我想要的web page.In,当用户在文本框中输入超过0个字符时,复选框应该会得到selected.In按钮单击事件如果复选框被选中,则打印一些东西。当用户输入超过0个字符时,复选框get checked.But When user click按钮,此时它显示checkbox.checked = false.Why,这样呢?
在aspx页面中
<script language="javascript" type="text/javascript">
function displaycharcount()
{
if(document.getElementById('TextBox1').value.length > 0)
document.getElementById('CheckBox1').checked = true;
}
</script>
//
//textbox
//checkbox
// button//在cs文件中
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add("onkeyup", " return displaycharcount()");
}
protected void btnAdd_Click(object sender, EventArgs e)
{
if (CheckBox1.Checked == true)
{
Response.Write("Printing .......");
}
}发布于 2013-06-20 15:44:17
因为当您从c#服务器端代码访问CheckBox1.Checked的值时,它会从视图状态中获取该值。当您从javascript客户端代码更新CheckBox的checked属性时,它不能更新该视图状态。这就是为什么你在按钮点击事件中得到checkbox.checked = false的原因。
发布于 2013-06-20 15:45:01
这是因为您在javascript中设置了checkbox属性,这是客户端代码,而调用按钮单击是服务器端代码。
我建议您使用隐藏字段,并在选中/取消选中复选框时设置其值。
在server side on button中,单击选中此隐藏字段的值,而不是复选框,然后继续。
我没有张贴代码,我让你先尝试这种方法,如果发现任何困难,我们可以帮助你
https://stackoverflow.com/questions/17207843
复制相似问题