У меня есть форма и GridView на той же странице. Когда пользователь сохраняет форму, он создает идентификатор. Мне нужно установить id в HiddenField. Затем мне нужен HiddenField для GridView. Но как только код завершает метод сохранения формы, скрытые получает сбрасываются в 0.Hiddenfield теряет значение
<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>
Я поставил кнопку Сохранить в панели обновления, чтобы остановить страницу с освежающего и закрытия (обычно после того, как сохранить кнопка нажата, она закроет форму, но мне нужно, чтобы она оставалась открытой).
В верхней части страницы я поставил скрытый:
<asp:HiddenField ID="hfNewID" runat="server" />
Затем в методе btnSaveMaintenance_Click
я установил значение скрытого
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, чтобы сохранить значение?
Теряя в то время как постбэка ?? – Arshad
Возможно, вам нужно поместить свое скрытое поле внутри вашей обновленной панели, под contentTemplate, а не поверх страницы. – Sandcar
Пожалуйста, поместите скрытое поле в панель обновления. Я надеюсь, что это поможет вам –