复选框检查已更改事件两次C#

时间:2017-03-02 16:25:41

标签: javascript c# jquery asp.net checkbox

我有一个带复选框的列表视图。根据我的要求,我取消选中javascript。但由于该脚本我的Checkchanged事件触发两次并在第二次触发时返回先前未经检查(通过javascript)的值。

通常,任何操作复选框都会触发事件。但是,如果您检查通过javascript取消选中的相同项目,则不会触发checkedchanged事件。

我不确定为什么在使用脚本时会发生这种情况。

请找到以下代码

的JavaScript

function CallConfirmBox() {
    alert("456");
    if (confirm('Schedule more than one time slot for the same day will overwrite the file')) {
        return true;
    }
    else {
        var id = document.getElementById('<%= hdnValue.ClientID%>').value;
        alert(id);
        $('#' + id).attr('checked', false);
        alert("123")
        id = "";
        return false;
    }
}

代码隐藏

protected void chkCheck_CheckedChanged(object sender, EventArgs e)
    {
        CheckBox chkCheck = (CheckBox)sender;
        ListViewItem item = (ListViewItem)chkCheck.NamingContainer;
        ListViewDataItem dataItem = (ListViewDataItem)item;
        string lookupId = lvLookup.DataKeys[dataItem.DisplayIndex].Value.ToString();
        hdnValue.Value = chkCheck.ClientID;
        if (lookupMstVal == "ScheduledTime." && lbCheckedIdList.Items.Count > 0 && chkCheck.Checked)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "CallConfirmBox", "CallConfirmBox();", true);//" + chkCheck.ClientID + "
        }

        if (chkCheck.Checked)
            lbCheckedIdList.Items.Add(lookupId);
        else
            lbCheckedIdList.Items.Remove(lookupId);
        hdfLookupId.Value = "";
        foreach (ListItem itm in lbCheckedIdList.Items)
        {
            hdfLookupId.Value += (hdfLookupId.Value == "" ? "" : ",") + itm.Value;
        }
        postbackFlag = true;
    }

请帮忙!感谢。

0 个答案:

没有答案