gpt4 book ai didi

c# - 用户控件ascx文件中的Updatepanel不更新gridview

转载 作者:行者123 更新时间:2023-11-30 22:25:21 24 4
gpt4 key购买 nike

我想尽量圆滑,将这个用户控件放在一个覆盖整个页面的 div 中。但是,当我单击搜索按钮时,我得到了完整的回发。关于如何让它不回发而只更新 gridview 的任何想法?

而且只是为了清楚。以下控件位于 ascx 文件中。这是在 aspx 页面中调用的。

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="PropertyViewAddEntity.ascx.cs"
Inherits="UserControls_PropertyViewAddEntity" %>

<p>Search for State City County zip</p>
<asp:Panel ID="Panel1" runat="server" DefaultButton="Button2ae">
<p>
<asp:TextBox ID="TextBox1ae" runat="server" Width="500px"></asp:TextBox>
<asp:Button ID="Button2ae" runat="server" Text="Search" CausesValidation="false" />
</p>
</asp:Panel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GridView2ae" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource3ae"
OnSelectedIndexChanged="GridView2ae_SelectedIndexChanged">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="zipcodeid" HeaderText="zipcodeid" SortExpression="zipcodeid" />
<asp:BoundField DataField="zip_code" HeaderText="zip_code" SortExpression="zip_code" />
<asp:BoundField DataField="state" HeaderText="state" SortExpression="state" />
<asp:BoundField DataField="city_alias_name" HeaderText="city_alias_name" SortExpression="city_alias_name" />
<asp:BoundField DataField="county_name" HeaderText="county_name" SortExpression="county_name" />
</Columns>
</asp:GridView>

</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button2ae" EventName="Click" />
</Triggers>
</asp:UpdatePanel>

顺便说一句,控件在占位符中

<asp:PlaceHolder ID="ControlContainer" runat="server"/>

并从后面的代码调用。

Control mycontrol = LoadControl("~/UserControls/PropertyViewAddEntity.ascx");

ControlContainer.Controls.Add(mycontrol);

最佳答案

我终于弄明白了。

为了让事情正常工作,通过代码隐藏添加用户控件是行不通的!

为了让事情正常工作,您必须在页面上声明用户控件,以便您可以访问用户控件的 UpdateMode="Conditional"属性。

<%@ Register TagPrefix="my" TagName="AddEntity" Src="~/UserControls/PropertyViewAddEntity.ascx"  %>
<my:AddEntity Visible="false" ID="test1" runat="server" ClientIDMode="Inherit" UpdateMode="Conditional" />

我将控件的 Visible 属性设置为 false,这样我就可以通过单击按钮来显示它。

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

我在后面的代码中这样做了。

protected void Button1_Click(object sender, EventArgs e)
{
test1.Visible = true;
}

设置更新模式后。一切正常。

关于c# - 用户控件ascx文件中的Updatepanel不更新gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12376200/

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