0

我有一个带有自动回发假的 asp.net 下拉列表控件。我已经编写了 js 代码来在下拉值更改时显示确认消息。

function ConfirmAbsent(ddlPresence) {
        if (ddlPresence != null) {
            var myValue = ddlPresence.options[ddlPresence.selectedIndex].text;
            var blnAbsent = confirm("This will mark as "+ myValue +". Please confirm clicking OK.");

            if (blnAbsent) {
                return true;
            }
            else {
                return false;
            }
        }
    }

并将此属性添加到下拉列表中,如下所示

ddlUserPresence.Attributes.Add("onchange", "if (!ConfirmAbsent(" + ddlUserPresence.ClientID
                    + ")) return; else __doPostBack('"
                    + ddlUserPresence.UniqueID + "', '');");

当我单击确定按钮时,它回发页面正常工作,但是当我单击取消按钮时,它没有显示以前的值,而是显示当前值。

因此,当我单击取消按钮时,它应该向我显示以前的值。请帮助。

4

1 回答 1

0

return false如果你想阻止事件,你应该从事件处理程序中:

ddlUserPresence.Attributes.Add("onchange", "return(ConfirmAbsent(" + ddlUserPresence.ClientID +"));"); 

您还传递了 ClientID,DropDownList但您没有使用它来查找控件。所以你应该使用document.GetElementById.

function ConfirmAbsent(ddlPresenceID) {
    var ddlPresence = document.GetElementById(ddlPresenceID);
    if (ddlPresence != null) {

请注意,您可以使用defaultValue获取在服务器端为 TextBoxes 设置的初始值。

于 2012-09-27T11:11:47.460 回答