2

我在更新面板中有一个带有网格视图的用户控件。

我试图触发所有网格事件,因为当我在网格视图上工作时,母版页不应该发布,但它不起作用。母版页总是后背!

我可以做什么?

这是 myuser 控制 asp.net 代码:

<asp:UpdatePanel ID="upFeatureCustomer" runat="server" ChildrenAsTriggers="true" >
<ContentTemplate>
<asp:GridView ID="gvFeatureCustomer" runat="server" DataKeyNames="Id"  
        AutoGenerateColumns="False" ClientIDRowSuffix="Id" 
    OnRowDataBound="dtgdResult_RowDataBound" ClientIDMode="Static" 
        ShowHeader="false">
    <Columns>
        <asp:TemplateField HeaderText="Nome" FooterText="Nome" SortExpression="Name">
            <ItemTemplate>
                <asp:DropDownList ID="ddlName" ClientIDMode="Predictable" runat="server" DataValueField="id" DataTextField="Name">
                </asp:DropDownList>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Valore" FooterText="Valore" SortExpression="Value">
            <ItemTemplate>
                <asp:TextBox id="txtValue" AutoPostBack="true" runat="server" CssClass="auto-feature" OnTextChanged="txtValue_TextChanged"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
         <asp:TemplateField HeaderText="Delete" FooterText="Delete" Visible="true" HeaderStyle-Width="25"
                ItemStyle-HorizontalAlign="Center">
                <ItemTemplate>
                    <asp:HyperLink ID="Delete" runat="server" NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.Id", "javascript:openDeleteDialog(\"{0}\");")%>'
                        ImageUrl="~/images/delete2.png" ToolTip="Delete">
                    </asp:HyperLink>
                </ItemTemplate>
            </asp:TemplateField>
    </Columns>
</asp:GridView>

</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="DataBinding" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="DataBound" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="Disposed" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="Init" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="Load" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="PageIndexChanged" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="PageIndexChanging" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="PreRender" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="RowCancelingEdit" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="RowCommand" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="RowCreated" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="RowDataBound" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="RowDeleted" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="RowDeleting" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="RowEditing" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="RowUpdated" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="RowUpdating" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="SelectedIndexChanged" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="SelectedIndexChanging" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="Sorted" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="Sorting" />
<asp:AsyncPostBackTrigger ControlID="gvFeatureCustomer" EventName="Unload" />
</Triggers>

</asp:UpdatePanel> 

ScriptManager 位于母版页内。谢谢你。

4

3 回答 3

1

我已经找到了解决方案。我已经使用脚本管理器在页面上注册了 asyncpostbackcontrol 事件,它现在可以工作了!

代码是这样的:

ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(tbValue);

感谢你们对我的帮助!

于 2013-01-04T16:02:59.187 回答
0

考虑内容页面的呈现方式。除了用于引用母版页的“页面”标签(可能还有程序集的注册标签等)之外,内容页面通常不应包含任何代码。您希望出现在内容选项卡之外的任何代码实际上都应该放在母版页中。

如果您需要进一步的帮助,这是一个非常好的教程:

您可以这样想:当您查看作为内容页面的 asp 网页时,母版页就是实际页面。它将始终是显示的页面。当您在内容页面中放置 ContentPlaceHolder 时,它会忽略母版页上相应 ContentPlaceHolder 中的任何代码。同样,如果您将代码放在内容页面内但在 ContentPlaceHolder 之外,它也将被忽略。

仅供参考:就像我说的那样,这只是我对它的抽象理解,所以如果我错了,请随时纠正我!!:) 祝你的网站好运。

于 2013-01-03T17:07:07.710 回答
0

就我而言,Gridview RowCommand 可以<asp:Button>在 updatePanel 中触发(我使用 Visual Studio 2012)

于 2019-11-07T09:24:18.137 回答