【发布时间】:2013-01-03 16:21:45
【问题描述】:
我在更新面板中有一个带有网格视图的用户控件。
我尝试触发所有网格事件,因为当我在处理网格视图时,母版页不应该发布支持,但它不起作用。母版页总是后退!
我能做什么?
这是我的用户控制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 位于母版页内。 谢谢。
【问题讨论】:
-
回帖如何,什么时候做什么?
-
尝试将 UpdatePanel 放在 ContentTemplate 中。
-
@rickschott 我在处理 gridview 时需要阻止页面回发。如果我尝试触发按钮单击事件(例如),它可以工作,但 gridview 事件不会。有什么想法吗?
-
@JBrooks 如果内容模板是更新面板部分,我如何将更新面板放在内容模板中?
-
内容模板是更新面板的子模板。你不能接受 Jbrooks 的建议。我认为他把它误认为是 ContentPlaceHolder 元素,我刚刚意识到我也这样做了。我下面的回答可能不再相关:(
标签: c# asp.net c#-4.0 user-controls updatepanel