我在.net回发系统中遇到了意外的行为和/或错误。
我有一个页面,它使用母版页提供公共元素,表格输入在子页面和母版页之间分开。表单提交按钮位于母版页上,我试图在母版页上处理回发。
每当我尝试提交表单包含任何非空值和的数据时,网址都包含参数,页面无法正确处理。如果页面是在任何条件下单独提交的,则不会发生这种情况。
表单回发方法是post。
页面无法加载,在firefox中返回no element found错误。
我已经检查了正确的类名ect,并且我在非表单元素中确实有空属性,但是当页面首先正确加载时我不认为这是相关的。我还检查了无限循环代码。
这是当前的回发处理代码:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
save_page();
}
page_render();
}
//save
private void save_page()
{
dev_text.Text = "save in progress";
}
答案 0 :(得分:0)
只有在将HTML发送到浏览器时才能在浏览器上看到在服务器上的HTML元素中设置文本。通常,一旦页面的整个处理完成,就会发生这种情况......通常在用户发起回发后很长一段时间。
不考虑在服务器上设置文本,而是考虑在提交时直接在浏览器上设置文本。有点像...
function setSavingText(){
// Vanilla javascript...
document.getElementById("<%=dev_text.ClientId%>").innerHTML = "save in progress";
// JQuery...
$("#<%=dev_text.ClientId%>").text("save in progress");
}
<asp:Button runat="server" ... OnClientClick="setSavingText();" />
上面的函数包含一个用于vanilla(普通)javascript的行和一个用于jQuery library的行。您只需一个。