フォームビュー内にあり、実行時に入力される一部のコントロールがポストバック後に内容を失う理由を理解するのに助けが必要です。
同じフォームビューの別のドロップダウンリスト (ddl_2) からのエントリに基づいて入力するドロップダウンリスト (ddl_1) があります。ポストバック イベントが発生すると、すべて正常に動作するように見えます。その後、新しく入力されたドロップダウン リスト (ddl_1) は空になります。
これら両方の ddls の EnableViewState は true に設定されています。ddl_2 はデータバインドされていますが、ddl_1 はデータバインドされていません。IsPostBack 句の Page_Load では、ddl_2 がデータバインドされており、ddl_1 を設定する関数を呼び出します。
フォームビューの外に ddl_1 を移動すると、ポストバック後もエントリが保持されます。
別の同様の問題は、フォームビュー内の TextBox にあります。挿入モードの場合、TextBox の内容はポストバック後に消えます。ただし、これは挿入モードでは発生しません。
これを引き起こすフォームビューに固有のものは何ですか?
どうもありがとう。
これが Page_load コードです。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) は Me.Load を処理します
If Not IsPostBack Then
If NavHelper.User.UserName = "" Then
Dim UserIP As String
Dim UserLogin As String
Dim UserEmail As String
UserIP = HttpContext.Current.Request.UserHostAddress
UserLogin = HttpContext.Current.Session("Username")
UserEmail = HttpContext.Current.Session("Email")
GetUserInfo()
CurrentRFQ = Nothing
If NavHelper.RFQ.ID = -1 Then
formview_RFQ.ChangeMode(FormViewMode.Insert)
tabpanelCustomerParts.Visible = False
tabpanelDocuments.Visible = False
tabpanelReviews.Visible = False
tabpanelRFQReviewHistory.Visible = False
listview_CustomerParts.Dispose()
Else
formview_RFQ.ChangeMode(FormViewMode.Edit)
listview_ReviewContracts_Initial.EditIndex = 0
SessionHelper.CurrentObject = TAA.Library.RFQ.GetObject(NavHelper.RFQ.ID)
mRFQ = DirectCast(SessionHelper.CurrentObject, TAA.Library.RFQ)
Dim UserdeptTotal As Long
UserdeptTotal = HttpContext.Current.Session("DepartmentTotal")
If formview_RFQ.FindControl("ddlCompanyBuyerNVList") IsNot Nothing Then
Dim ddl As DropDownList = DirectCast(formview_RFQ.FindControl("ddlCompanyBuyerNVList"), DropDownList)
FillCompanyNameDropDownList(ddl)
End If
tabpanelCustomerParts.Visible = True
tabpanelDocuments.Visible = True
tabpanelReviews.Visible = True
tabpanelRFQReviewHistory.Visible = True
If NavHelper.RFQ.Copy = True Then
SetModifyCopy()
End If
End If
Else 'IsPostBack
datasource_BuyerNVList.Dispose()
datasource_BuyerNVList.DataBind()
Dim ddl As DropDownList
If (formview_RFQ.CurrentMode = FormViewMode.Insert) Then
ddl = DirectCast(formview_RFQ.FindControl("ddlCompanyBuyerNVListInsert"), DropDownList)
ElseIf formview_RFQ.FindControl("ddlCompanyBuyerNVList") IsNot Nothing Then
ddl = DirectCast(formview_RFQ.FindControl("ddlCompanyBuyerNVList"), DropDownList)
End If
FillCompanyNameDropDownList(ddl)
End If
End If
End Sub