Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在GridViewRowCommand事件中更新同一页面上文本框的文本_C#_Asp.net_Ajax - Fatal编程技术网

C# 如何在GridViewRowCommand事件中更新同一页面上文本框的文本

C# 如何在GridViewRowCommand事件中更新同一页面上文本框的文本,c#,asp.net,ajax,C#,Asp.net,Ajax,嗨,我有一个Gridview和一个文本框,它们放在Ajax updatepanel中 <asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" /> </Triggers&g

嗨,我有一个Gridview和一个文本框,它们放在Ajax updatepanel中

<asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" />
</Triggers>
</asp:UpdatePanel>
资料来源如下:

<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>
<asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" />
</Triggers>
</asp:UpdatePanel>
当我调试时,控件进入row命令并到达行

TextBoxMeritFieldName.Text = GridViewMeritDetails.Rows[iRowIndex].Cells[0].Text.Trim();
<asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" />
</Triggers>
</asp:UpdatePanel>

但是文本不会显示在页面上。我缺少什么?

设置UpdatePanel的模式

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



为您慷慨的回复设置更新面板的一个属性
Mode=“Conditional”

<asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" />
</Triggers>
</asp:UpdatePanel>
我知道答案了

<asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" />
</Triggers>
</asp:UpdatePanel>
我在UpdatePanelAdmissionDefaultSettings部分添加了以下代码行

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

现在它变成了:

<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>

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

我得到了我需要的结果。之前,我的触发器部分是这样的:

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


我刚刚删除了EventName属性,它现在可以工作了…

我尝试了这个。但这没用。感谢您的帮助。使用UpdateMode=“Conditional”而不是Mode,我已经更正了我的答案。它无法使我的代码正常工作。但是我得到了我的答案,感谢您尝试帮助我。AsyncPostBackTrigger的EventName属性是可选的。如果未指定,则使用控件的DefaultEventAttribute属性确定默认事件。我在这里找到的
<asp:TextBox ID="TextBoxMeritFieldName" runat="server"></asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridViewMeritDetails" />
</Triggers>
</asp:UpdatePanel>