【问题标题】:Hiddenfield loses valueHiddenfield 失去价值
【发布时间】:2016-02-04 12:34:21
【问题描述】:

我在同一页面上有一个表单和一个 GridView。当用户保存表单时,它会创建一个 ID。我需要将 id 设置为 HiddenField。然后我需要 GridView 的 HiddenField。但只要代码完成表单的保存方法,HiddenField 就会重置为 0。

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>        
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnSaveMaintenance" />
        </Triggers>
    </asp:UpdatePanel>

    <tr>
        <td>
            <asp:LinkButton ID="btnSaveMaintenance" OnClientClick="return ValidateSaveWithoutPieces()" OnClick="btnSaveMaintenance_Click" runat="server" style="float:left" CssClass="btnSaveSmall" ></asp:LinkButton>
        </td>

我将保存按钮放在更新面板中以阻止页面刷新和关闭(通常,一旦单击保存按钮,它将关闭表单,但我需要它保持打开状态。

在页面顶部我放置了 HiddenField:

<asp:HiddenField ID="hfNewID" runat="server" />

然后在btnSaveMaintenance_Click方法中我设置了HiddenField的值

protected void btnSaveMaintenance_Click(object sender, EventArgs e)
{
      int tmpParentID = tmpID;
        if (ParentID.HasValue)
            tmpParentID = ParentID.Value;

        Maintenance newMain = new Maintenance
        {
            ID = tmpID,
            Company_ID = Company.Current.CompanyID,
            VehicleTrailer = tmpType,
            LinkedID = (long)tmpParentID,
            DBRowStatus = JobPiece.RowStatus.ToCreate
        };

        main.Add(newMain);;
        hfNewID.Value = tmpID.ToString(); //set value to hiddenfield

        if (ParentID.HasValue)
        {
            Save(Reg, ParentID.Value);
            List<Maintenance> Newmain = Maintenance.GetMainteneceItemsByParentID(Company.Current.CompanyID,
                 ParentID.Value,
                 PageType,
                 "Active");
            ViewState["Maintenance"] = Newmain;
            gvMaintenance.DataSource = Newmain;
            gvMaintenance.DataBind();
            udpMain.Update();
        }
}

但是当我尝试在另一个函数中调用 HiddenField 时,它一直返回空白。如何让 HiddenField 保持值?

【问题讨论】:

  • 回发时丢失??
  • 可能您必须将隐藏字段放在 updatePanel 中的 contentTemplate 下,而不是页面顶部。
  • 请将隐藏字段放入更新面板,希望对您有所帮助

标签: javascript c# jquery asp.net hidden-field


【解决方案1】:

请试试这个: 将您的隐藏字段放在您的 updatePanel 中,在 contentTemplate 下,而不是在页面顶部

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <ContentTemplate> 
             // you have to put your hidden in this place
            <asp:HiddenField ID="hfNewID" runat="server" />
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnSaveMaintenance" />
        </Triggers>
    </asp:UpdatePanel>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-21
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 2010-09-17
    相关资源
    最近更新 更多