问题描述
|
我有一些JavaScript可以设置ѭ0的值,然后强制执行回发。我可以遍历此JavaScript,它似乎可以正常工作。但是,当我从页面的Load事件中测试“ 0”的值时,将不再设置该值。
在网上搜索时,我看到很多关于丢失ѭ0值的帖子,但是似乎没有一个在做与我相同的事情。
这是我的JavaScript函数(已修改):
function EditItemItem(itemId) {
document.getElementById(\'<%= EditItemId.ClientID %>\').value = itemId;
__doPostBack(\'<%= EditItemUpdatePanel.ClientID %>\',\'\');
}
这是我的标记的一部分(已修改):
<div id=\"EditItemBox\" runat=\"server\">
<asp:HiddenField runat=\"server\" id=\"EditItemId\" />
<asp:UpdatePanel ID=\"EditItemUpdatePanel\" runat=\"server\"
UpdateMode=\"Conditional\">
<ContentTemplate>
<asp:Panel ID=\"EditItemPanel\" runat=\"server\"
CssClass=\"ModalDialog\" style=\"display:none;\">
<div>Edit an Item</div>
<!-- ... -->
</asp:Panel>
</asp:UpdatePanel>
</div>
有人有什么想法吗?
解决方法
如果从隐藏字段中删除
runat=server
,然后从窗体参数Request.Form[\"EditItemId\"]
中访问它,会更容易。然后它每次都起作用。
您的代码将变为:
function EditItemItem(itemId) {
document.getElementById(\'EditItemId\').value = itemId;
__doPostBack(\'<%= EditItemUpdatePanel.ClientID %>\',\'\');
}
<div id=\"EditItemBox\" runat=\"server\">
<input type=\"hidden\" id=\"EditItemId\" name=\"EditItemId\" value=\"\" />
<asp:UpdatePanel ID=\"EditItemUpdatePanel\" runat=\"server\"
UpdateMode=\"Conditional\">
<ContentTemplate>
<asp:Panel ID=\"EditItemPanel\" runat=\"server\"
CssClass=\"ModalDialog\" style=\"display:none;\">
<div>Edit an Item</div>
<!-- ... -->
</asp:Panel>
</asp:UpdatePanel>
</div>
, 如果您希望通过ѭ8进行AJAX回发,那么您需要将其放入ѭ9内。