0

こんにちは、Ajax updatepanel に配置された Gridview とテキスト ボックスがあります。

ソースを以下に示します。

<asp:UpdatePanel ID="UpdatePanelAdmissionDefaultSettings" runat="server">
<ContentTemplate>
<asp:GridView ID="GridViewMeritDetails" runat="server" AutoGenerateColumns="False" 
        BackColor="White" BorderColor="#5C5C5C" BorderStyle="Solid" BorderWidth="1px" 
        CellPadding="4" ForeColor="Black" CssClass="MeritGridStyle" 
            onrowdatabound="GridViewMeritDetails_RowDataBound" 
            onrowcommand="GridViewMeritDetails_RowCommand">
<RowStyle BackColor="#F7F7DE" />
<Columns>
<asp:BoundField HeaderText="Field Name" DataField="MeritField" />
<asp:BoundField HeaderText="Field ID" DataField="MeritFieldID" />
<asp:ButtonField CommandName="edit" HeaderText="Edit" Text="Edit" />
<asp:ButtonField CommandName="delete" HeaderText="Delete" Text="Delete" />
</Columns>
<FooterStyle BackColor="#CCCC99" />
<PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>


<asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>

私の問題は、GridView の編集ボタンをクリックすると、テキスト ボックスで選択した行のセルに値を表示したいということです。Gridview RowCommand イベントで表示するコードを提供しました。しかし、それは機能していません。

コードビハインドは次のとおりです。

protected void GridViewMeritDetails_RowCommand(object sender, GridViewCommandEventArgs e)
{
    int iRowIndex = Convert.ToInt32(e.CommandArgument);
    if (e.CommandName == "edit")
    {
        TextBoxMeritFieldName.Enabled = true;
        TextBoxMeritFieldName.Text = GridViewMeritDetails.Rows[iRowIndex].Cells[0].Text.Trim();
    }
    else if (e.CommandName == "delete")
    {
        //Add code to delete merit field
    }
}

デバッグすると、コントロールは RowCommand に入り、行に到達します

TextBoxMeritFieldName.Text = GridViewMeritDetails.Rows[iRowIndex].Cells[0].Text.Trim();

しかし、テキストはページに表示されません。私は何が欠けていますか?

4

3 に答える 3

1

UpdatePanelのモードを設定します

<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="UpdatePanelAdmissionDefaultSettings" runat="server" >
于 2012-08-08T13:08:40.360 に答える
0

寛大なご回答ありがとうございます。

私は答えを持っています。

UpdatePanelAdmissionDefaultSettings セクションに次のコード行を追加しました

<asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" />

今では次のようになります。

<asp:UpdatePanel Mode="Conditional" ID="UpdatePanelAdmissionDefaultSettings" runat="server">

<asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" />
</Triggers>
</asp:UpdatePanel>

そして、私は必要に応じて結果を得ています。以前、私の Triggers セクションは次のようでした:

<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" EventName="RowCommand"/>
</Triggers>

EventName 属性を削除したところ、動作するようになりました...

于 2012-08-09T06:39:47.933 に答える
0
<asp:UpdatePanel Mode="Conditional" ID="UpdatePanelAdmissionDefaultSettings" runat="server">
 <ContentTemplate>
  <asp:GridView ID="GridViewMeritDetails" runat="server" AutoGenerateColumns="False" 
    BackColor="White" BorderColor="#5C5C5C" BorderStyle="Solid" BorderWidth="1px" 
    CellPadding="4" ForeColor="Black" CssClass="MeritGridStyle" 
        onrowdatabound="GridViewMeritDetails_RowDataBound" 
        onrowcommand="GridViewMeritDetails_RowCommand">
    <RowStyle BackColor="#F7F7DE" />
       <Columns>
          <asp:BoundField HeaderText="Field Name" DataField="MeritField" />
          <asp:BoundField HeaderText="Field ID" DataField="MeritFieldID" />
          <asp:ButtonField CommandName="edit" HeaderText="Edit" Text="Edit" />
          <asp:ButtonField CommandName="delete" HeaderText="Delete" Text="Delete" />
       </Columns>
       <FooterStyle BackColor="#CCCC99" />
       <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
       <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
       <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
       <AlternatingRowStyle BackColor="White" />
  </asp:GridView>


 <asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox>
</ContentTemplate>
</asp:UpdatePanel>

Set one property Mode="Conditional" of update panel

于 2012-08-08T13:48:32.653 に答える