回发时HiddenField值丢失

问题描述

| 我有一些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内。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...