2017-07-28 2 views
0

Iは、バックエンドからデータなし後にポストバック

<asp:UpdatePanel ID="DynCreated" EnableViewState="true" UpdateMode="Conditional" 
      runat="server"> 
      <ContentTemplate > 
       <div style="display: none" enableviewstate="true"> 
        <asp:TextBox ID="flgClear" EnableViewState="true" Text="" runat="server"></asp:TextBox> 
        <asp:TextBox ID="flgAdd" EnableViewState="true" Text="" runat="server"></asp:TextBox> 
        <asp:TextBox ID="txtList" EnableViewState="true" Text="|" runat="server"></asp:TextBox> 
        <asp:TextBox ID="txtDelete" EnableViewState="true" Text="|" runat="server"></asp:TextBox></div> 
     <asp:Table ID="tblGrid" CssClass="grid" CellPadding="0" CellSpacing="0" 
        Width="100%" EnableViewState="true" runat="server"> <asp:TableRow TableSection="TableHeader" ID="trHeader" CssClass="crid-header Datagrid-header" 
         runat="server" EnableViewState="true"> 
         <asp:TableHeaderCell ID="hdrSequence" runat="server"> 
          <asp:Label ID="lblSequence" Text="#" CssClass="cel" runat="server" /> 
         </asp:TableHeaderCell> 
         <asp:TableHeaderCell ID="hdrHouseBill" runat="server"> 
          <asp:Label ID="lblHouseBill" Text="HouseBill" CssClass="ceva-form-label" runat="server" /> 
         </asp:TableHeaderCell> 
         <asp:TableHeaderCell ID="hdrFileNumber" runat="server"> 
          <asp:Label ID="lblFileNumber" Text="FileNumbere" CssClass="ceva-form-label" runat="server" /> 
         </asp:TableHeaderCell> 

        </asp:TableRow> 
       </asp:Table> 
       <br /> 
       <br /> 
       <div class="text-center"> 
        <asp:Button ID="btnAddNewHB" CssClass="tn btn-dialog" Text="Add New Status" 

        OnClientClick="return ShowNewLeg();" runat="server" /> 

        <asp:Button Text="Validate" CssClass="cen btn-dialog" runat="server" ID="btnValidate" /> 


        <asp:Button ID="btnSave" CssClass="tn-dialog" Text="Save" OnClientClick="return Save()" Visible="false" 
         runat="server" /> 
        <asp:Button ID="btnCancel" CssClass=" btn-dialog" OnClientClick="window.returnValue = 1; window.close(); return false;" 
         Text="Cancel" CausesValidation="false" runat="server" /> 
        <asp:Button ID="btnClear" CssClass=tn btn-dialog" Text="Clear All" OnClientClick="return ClearTable();" 
         runat="server" /> 
        <input type="hidden" id="hndtimeformat" runat="server" name="hndtimeformat" value="0" 
         style="display: none" /> 
       </div> 
      </ContentTemplate> 
     </asp:UpdatePanel> 

を示したように、私はtblGrid

 For j As Integer = tblGrid.Rows.Count To maxRow 
     Dim newRow As TableRow= New TableRow() 
    newRow.Cells.Add(CreateNewLabel(tblGrid.Rows.Count, "SEQ", 
    tblGrid.Rows.Count, tblGrid.Rows.Count, "40px", bColor)) 
    newRow.Cells.Add(CreateNewText(tblGrid.Rows.Count, "HB", "", 
     tblGrid.Rows.Count, "10px", "", 3, "none", False)) 
    newRow.Cells.Add(CreateNewLabel(tblGrid.Rows.Count, "FN", "", tblGrid.Rows.Count, "60px", "")) 
    newRow.Cells.Add(CreateNewDD(tblGrid.Rows.Count, "ST", statusup, tblGrid.Rows.Count, "10px", "", 3, "none", True)) 
newRow.Cells.Add(CreateNewDT(tblGrid.Rows.Count, "datetime", "", tblGrid.Rows.Count, "")) 
    newRow.Cells.Add(CreateNewAC(tblGrid.Rows.Count, "LC", "", "", tblGrid.Rows.Count, "0.0", AutoCompletor.DisplayFieldType.Code, "", "", False)) 
newRow.Cells.Add(CreateNewText(tblGrid.Rows.Count, "SG", "", tblGrid.Rows.Count, "10px", "", 0, "none")) 
newRow.Cells.Add(CreateNewCB(tblGrid.Rows.Count, "CB", "", tblGrid.Rows.Count, "5px", bColor)) 
    newRow.Cells.Add(CreateNewText(tblGrid.Rows.Count, "Note", "", tblGrid.Rows.Count, "10px", "", 0, "none")) 
newRow.Cells.Add(CreateNewLabel(tblGrid.Rows.Count, "Er", "", tblGrid.Rows.Count, "40px", bColor)) 
newRow.Cells.Add(CreateNewImage(tblGrid.Rows.Count, "btn", tblGrid.Rows.Count)) tblGrid.Rows.Add(newRow) Next j 

に新しい行を追加していたテーブルをしていた中でのUpdatePanelを、持っています私は、前にポストバックの前に、タブグリッドに存在するデータを持っていないポストバックした後にデータを取得しています。

ViewStateまたはSessionを使用する必要がありますか?私はデータを取得する方法はありますか? アドバイスをお願いします!

答えて

0

ビューステートにデータを入れて、あなただけのこのページ内のナビゲーション中にこのデータを使用する必要がある場合は、ViewStateの変数を使用することができ、ポストバック

0

後にそれらを取得します。 Session変数を使用する方が、セッション全体のデータをよりよく保持したい場合は、他のページに移動してもこれらの行が失われることはありません。

のAsp:

<asp:GridView runat="server" ID="tblGrid" CssClass="grid" CellPadding="0" CellSpacing="0"> 
       <Columns > 
        <asp:TemplateField > 
         <HeaderTemplate > 
          <asp:Label ID="lblSequence" Text="#" CssClass="cel" runat="server" /> 
        </HeaderTemplate> 
         <ItemTemplate> 
          <asp:Label ID="lblSequenceItem" Text="<%# Eval("col1") %>" runat="server" /> 
         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:TemplateField> 
         <HeaderTemplate> 
          <asp:Label ID="lblHouseBill" Text="HouseBill" CssClass="ceva-form-label" runat="server" /> 
        </HeaderTemplate> 
         <ItemTemplate> 
          <asp:Label ID="lblHouseBillItem" Text="<%# Eval("col2") %>" runat="server" /> 
         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:TemplateField> 
         <HeaderTemplate> 
          <asp:Label ID="lblFileNumber" Text="FileNumbere" CssClass="ceva-form-label" runat="server" /> 
        </HeaderTemplate> 
         <ItemTemplate> 
          <asp:Label ID="lblFileNumberItem" Text="<%# Eval("col3") %>" runat="server" /> 
         </ItemTemplate> 
        </asp:TemplateField> 
       </Columns> 
      </asp:GridView> 

とランタイムデータについては、このバインディング:: 作成の表は、(一例に過ぎない)は、データを管理したい場合は、私はこのソリューションを試してみることをお勧め使用する権利の要素ではありませんデータテーブル

Dim dt As New Data.DataTable("rows") 
    Dim col1 As New Data.DataColumn("col1", GetType(String)) 
    Dim col2 As New Data.DataColumn("col2", GetType(Integer)) 
    Dim col3 As New Data.DataColumn("col3", GetType(String)) 

    dt.Columns.Add(col1) 
    dt.Columns.Add(col2) 
    dt.Columns.Add(col3) 

    dt.Rows.Add ("test",1,"test") 'statement for row insert 

    ViewState("datasource") = dt 

    tblGrid.DataSource = dt 
    tblGrid.DataBind() 

そして、ポストバックに結合する:

Dim dt As New Data.DataTable("rows") 

    If Not ViewState("datasource") Is Nothing Then dt = ViewState("datasource") 

    tblGrid.DataSource = dt 
    tblGrid.DataBind() 
+0

私はViewStateに置く場合その "System.Web.UI.WebControls.Table 'アセンブリ' System.Web、バージョン= 2.0.0.0、Culture =ニュートラル、PublicKeyToken = b03f5f7f11d50a3a 'の型' System.Web.UI.WebControls.Table 'がシリアル化可能としてマークされていません。エラー – user7776356

+0

テーブルの代わりにデータテーブルを定義しようとすると、このようにしてviewstateに保存し、table.datasourceのように設定することができます – FabioTos

関連する問題