2

我正在尝试变得圆滑,并且将此用户控件放在覆盖整个页面的 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);
4

1 回答 1

3

我终于弄清楚了这个问题。

为了使事情正常工作,通过代码隐藏添加用户控件将不起作用!

为了使事情正常工作,您必须在页面上声明用户控件,以便您可以访问用户控件的 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;
}

一旦设置了更新模式。一切正常。

于 2012-09-13T16:08:10.080 回答