【发布时间】:2009-11-05 19:57:50
【问题描述】:
我给按钮一个名为notetype的属性。
<asp:ImageButton ID="bttnSave" notetype="none" runat="server" ImageUrl="~/images/bttnSave.gif" onclick="bttnSave_Click" />
我有一个来自不同按钮点击的函数,该函数将该变量设置为某种类型。
function addnotes(Type,IncId,Acc,Wit,Claim,Inj,Prop,Media) {
var bttnopenmodal = $get('<%=bttnopenmodal.ClientID %>');
var bttnSave = $get('<%=bttnSave.ClientID %>');
if (Type == 'Inc') {
bttnSave.notetype = 'Inc';
}
bttnopenmodal.click();
return false;
}
但是在按钮的C#代码中:
protected void bttnSave_Click(object sender, ImageClickEventArgs e)
{
Response.Redirect(bttnSave.Attributes["notetype"]);
}
保存按钮的notetype 的值仍然是“none”,即使我在javascript 中更改了它。我什至提醒确保它改变了笔记类型并且确实如此。我试图用更新面板更新按钮无济于事。如何正确更改该笔记类型?
【问题讨论】:
-
只有表单控件元素的
value属性与表单帖子一起发送(对于<input type="image" />,根本不会发送任何内容)。您不能仅仅因为您将其指定为属性,就指望浏览器知道在帖子正文中发送"notetype=none"。这就是<input type="hidden" name="notetype" value="none" />的用途。 Viewstate 让您忘记这一切,直到您尝试在客户端中更改它并且整个事情都爆炸了。 -
将此作为答案发布,我会接受。我使用了隐藏字段。
标签: c# .net asp.net javascript visual-studio