复选框第一次不反映其检查值

时间:2016-03-08 11:56:26

标签: javascript c# checkbox

void btnSave_Click(object Sender, EventArgs e)
{            
    HtmlInputCheckBox chkUpdate = (HtmlInputCheckBox)rptVersions.Items[i].FindControl("chkUpdate");

    if (chkUpdate.Checked)
    {
       /* some code */
    }

}

aspx代码:

C#

   void btnSave_Click(object Sender, EventArgs e)
   {            
        HtmlInputCheckBox chkUpdate = (HtmlInputCheckBox)rptVersions.Items[i].FindControl("chkUpdate");

        if (chkUpdate.Checked)
        {
           /* some code */
        }

    }

ASPX

<input type="checkbox" versionid='<%#Eval("VersionId") %>' class="checkbox" runat="server" id="chkUpdate" />

JS

$('.checkbox').each(function () {

            if ($(this).attr('versionid') == '<%=qryStrVersion%>' && '<%=qryStrVersion%>' != '') {
                $(this).attr("checked", "checked");
            }
            else
                $(this).removeAttr("checked");
        });

如果第一次点击保存按钮,则chkUpdate的值始终为false。但如果我点击多次,它的工作正常。可以有人帮忙吗?

2 个答案:

答案 0 :(得分:1)

可能会失败,因为Eval("VersionId")<%=qryStrVersion%>不完全相同。调试您的页面并检查这两者的值,看它们是否相同。

我运行了这个JSFiddle,根据它的外观,如果这两个值不相同,则第一次加载页面时不会检查复选框。

答案 1 :(得分:0)

由于哪个网格在单个动作调用上绑定了两次,我没有使用if(!ispostback)。 大家好!