我使用javascript展示了一个modalpopupextender,当我点击它的保存按钮时,它保存了我输入的内容,并且(作为它的一个按钮)自动回发,以便页面刷新。用JavaScript(asp.net)神秘回发问题
但是,当它刷新时,我收到一个错误,因为它说我在aspx页面上定义的复选框控件为空。
当页面加载时,我做的第一件事情就是创建一些javascript并为我的组件提供各种clientID,并且最后添加的是chkFullyBooked.ClientID。
当页面第一次加载时,它是可以的,但是在回复之后它说我的复选框为空。
另一个问题是,在我的保存按钮功能中,虽然它可以检索文本框的值和代码中的复选框,但无法从标签中获取已更改的文本...我通过将标签转换为文本框虽然。
我只是无法弄清楚为什么复选框控件(在其他文本框中硬编码到我的页面)会在页面刷新时返回为空值。
<% Response.Write("<script language='javascript' type='text/javascript'>" +
"function DisplayModalPopup(dateCreated, note, editedBy, fullybooked) {" +
"var modalDialog = $find('AddressErrorPopup');" +
"document.getElementById('" + txtNote.ClientID + "').value = note;" +
"if (modalDialog != null) { modalDialog.show(); }" +
"var lblLastEditBy = document.getElementById('" + txtLastEditBy.ClientID + "');" +
"lblLastEditBy.value = editedBy;" +
"var lblDateCreated = document.getElementById('" + txtTallyBoardEntryDate.ClientID + "');" +
"lblDateCreated.value = dateCreated;" +
"var fullyBooked = document.getElementById('" + chkFullyBooked.ClientID + "');" +
"fullyBooked.value = fullybooked;" +
"} " +
"</script>"); %>
后来在我的代码,摘录:
.
.
.
<tr>
<td colspan="2" style="text-align:left">Last Edit by - <asp:TextBox ID="txtLastEditBy" ReadOnly="true" runat="server"></asp:TextBox></td>
</tr>
<tr><td colspan="2" style="text-align:left"><asp:CheckBox runat="server" ID="chkFullyBooked" Text="Fully Booked?" Checked="false"/></td></tr>
.
.
.
编辑:当然,这意味着我得到一个空引用异常就在我的aspx页面的顶部
代码上面的代码,因为它不能访问ClientID。
编辑:作为一个蹩脚的修复我做的Response.Redirect(request.url.tostring),而不是让该按钮回传本身,这对于一些荒凉的原因,工作正常..
这对于保留值是有意义的,但是这里的问题是复选框本身回到空值......就好像控件不存在一样,这是不可能的... – NibblyPig 2009-10-27 16:18:27