gpt4 book ai didi

c# - 使用第二个 UpdatePanel 的 gridview 中的 LinkBut​​ton 从第一个 UpdatePanel 更新文本框。找不到控件

转载 作者:太空狗 更新时间:2023-10-29 17:56:48 26 4
gpt4 key购买 nike

我需要在 UpdatePanel upSectionB 中添加 LinkBut​​ton btnAddRow 但问题是我在加载期间遇到此错误:

A control with ID 'btnAddRow' could not be found for the trigger in UpdatePanel 'upSectionB'.

我的简化aspx

<asp:UpdatePanel ID="upSectionB" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
Request Budget (USD)
<asp:TextBox ID="txtTotal" runat="server"></asp:TextBox>

</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnAddRow" EventName="Click" />
//Poses problems when I uncomment the trigger above. btnAddRow is a LinkButton inside upSectionC
</Triggers>
</asp:UpdatePanel>

<asp:UpdatePanel ID="upSectionC" runat="server">
<ContentTemplate>
<asp:GridView ID="gvCostBreakdown" runat="server" AutoGenerateColumns="false" ShowFooter="true">
<Columns>
<asp:TemplateField HeaderText="Amount">
<ItemTemplate>
<asp:TextBox ID="txtAmount" runat="server" Text='<%# Eval("BudgetUSD") %>'></asp:TextBox>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAmountTotal" runat="server" Enabled="false"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Delete" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:LinkButton ID="btnDeleteRow" runat="server" ToolTip="Delete" OnClick="btnDeleteRow_Click" CommandArgument='<%# Eval("Id","{0}") %>' OnClientClick="">Delete</asp:LinkButton>
</ItemTemplate>
<FooterTemplate>
<asp:LinkButton ID="btnAddRow" runat="server" CausesValidation="true" ValidationGroup="vgAddRow" ToolTip="Add Row" OnClick="btnAddRow_Click">Add Row</asp:LinkButton>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>

最佳答案

您唯一需要做的就是在单击 btnAddRow 时触发 upSectionB 的更新。

protected void btnAddRow_Click(object sender, EventArgs e)
{
txtTotal.Text = "new value";

//update the other updatepanel
upSectionB.Update();
}

出现该错误的原因是该按钮位于 GridView 控件中,因此在 aspx 页面的范围内无法访问。如果您想对页脚中的按钮执行某些操作,则需要使用 FindControl。

LinkButton lb = gvCostBreakdown.FooterRow.FindControl("btnAddRow") as LinkButton;

关于c# - 使用第二个 UpdatePanel 的 gridview 中的 LinkBut​​ton 从第一个 UpdatePanel 更新文本框。找不到控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49605207/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com