0

私のシナリオの解決策を見つけるのに本当にイライラしています。最初のグリッドがショップ情報を表示し、2 番目のグリッドがショップ情報に関連するオファーを編集するために使用される場合、2 つのグリッドがあります。ユーザーが 2 番目のグリッドを編集すると、グリッド選択行に関連するテキスト ボックスの値が更新されます。コード ビハインド ファイルでは、データがグリッドから取得され、テキスト ボックスに割り当てられているのを確認できますが、関数呼び出し (imgEdit_click) が終了すると、ページに値が表示されません。編集機能はさまざまな方法で実行できますが、私のシナリオは前に説明したものです。チェックしたページがあり、メソッドの後にポストバックアクションが呼び出されていません。解決策が見つかりませんでした。誰かがそれを理解するのを手伝ってくれます。

以下は私のソースとコードビハインドコードです。

私のデザイン出典:

<div class="field">

 <asp:TextBox ID="txtareaOfferDesc" runat="server" TextMode="MultiLine" ></asp:TextBox>
                    </div>

<div class="field">
 <asp:TextBox ID="txtTimeStarts" runat="server" CssClass="textfield"></asp:TextBox>
                                          <cc1:CalendarExtender   
            ID="CalendarExtender2"  
            runat="server"  
            TargetControlID="txtTimeStarts"    
            CssClass="CalendarCSS">
            </cc1:CalendarExtender> 


<div class="datefld">
<label class="name">Offer end date/time (optional)</label>
 <div class="field">
<asp:TextBox ID="txtTimeEnd" runat="server" CssClass="textfield"></asp:TextBox>

   <cc1:CalendarExtender ID="CalendarExtender4" runat="server" TargetControlID="txtTimeEnd"    
            CssClass="CalendarCSS">
            </cc1:CalendarExtender> ` 

    <asp:GridView ID="gvShopDeal" runat="server" AutoGenerateColumns="false" 
                      CssClass="tblexistoffer" DataKeyNames="ShopID" AllowPaging="True" 
                      AllowSorting="True">
                     <Columns>
                    <asp:TemplateField>
         <HeaderTemplate  >
            <asp:CheckBox ID="chkHeader" runat="server" />
            <asp:Label ID="lblSelectAll" Text="Select All" runat="server"></asp:Label>
         </HeaderTemplate>
         <ItemTemplate >
            <asp:CheckBox ID="chkRow" runat="server" />
         </ItemTemplate>
      </asp:TemplateField>
       <asp:BoundField DataField="ShopID" HeaderStyle-Width="10%" HeaderText="Shop ID" />
      <asp:BoundField DataField="ShopName" HeaderStyle-Width="40%" HeaderText="Shop Name" />
      <asp:BoundField DataField="Street" HeaderStyle-Width="40%" HeaderText="Street" />
      <asp:BoundField DataField="City" HeaderText ="City" />
                </Columns>
              </asp:GridView>
<asp:Button ID="btnCreateDeal" runat="server" Text="Create Offer" 
                      CssClass="grnbtn" OnClientClick="return CheckDealValidation(this)" onclick="btnCreateDeal_Click"></asp:Button>
                                        <asp:Button ID="btnDefCancel" runat="server" Text="Cancel" CssClass="greybtn"></asp:Button>



    <asp:UpdatePanel ID="UpdateExistingOffer" runat="server">
            <ContentTemplate>
              <asp:GridView ID="gvExistingOffers" runat="server" CssClass="tblexistoffer" 
                  AutoGenerateColumns="false" DataKeyNames="OfferID" AllowPaging="True" 
                  AllowSorting="True">

              <Columns>
   <asp:BoundField DataField="OfferID" HeaderText="OfferID" />
<asp:BoundField DataField="Description" HeaderText="OfferName" />
<asp:BoundField DataField="Status" HeaderText="Status" />
<asp:BoundField DataField="OfferType" HeaderText="OfferType" />

<asp:BoundField DataField="StartDate" HeaderText="StartDate">
<ItemStyle CssClass="Hide" />
<HeaderStyle CssClass="Hide" />
</asp:BoundField>
<asp:BoundField DataField="EndDate" HeaderText="EndDate" >
<ItemStyle CssClass="Hide" />
<HeaderStyle CssClass="Hide" />
</asp:BoundField>
 <asp:TemplateField HeaderText="Edit" HeaderStyle-Width="5%">
<ItemTemplate>

<asp:ImageButton ID="imgbtnEdit" ImageUrl="~/Merchant/images/edit.jpg"  runat="server"  Width="25" Height="25" onclick="imgbtnEdit_Click" />

</ItemTemplate>
</asp:TemplateField>
  </Columns>

              </asp:GridView>
              </ContentTemplate>
              </asp:UpdatePanel>

コード ビハインド ファイル:

 protected void imgbtnEdit_Click(object sender, ImageClickEventArgs e)
    {

            ImageButton btndetails = sender as ImageButton;
            GridViewRow gvrow = (GridViewRow)btndetails.NamingContainer;
            fferIDForShop = Convert.ToInt32(gvExistingOffers.DataKeys[gvrow.RowIndex].Value);
            ShopList objShopID = ShopService.GetShopID(OfferIDForShop);
            (txtareaOfferDesc.Text) = gvrow.Cells[1].Text.Trim();
            txtTimeStarts.Text = gvrow.Cells[4].Text;
            txtTimeEnd.Text = gvrow.Cells[5].Text;
    }

ありがとう

ビジェイ

4

1 に答える 1

1

問題は、テキストボックスが更新パネルの外にあるためです。更新パネルにすべてを入れるだけで機能し始めるか、更新パネルをコメントアウトしてから同じことを試してください。

于 2012-07-02T13:24:03.453 に答える