更新面板在 UserControl 内的 Gridview 中的编辑按钮中不起作用
Update Panel is not working in Edit Button in Gridview inside UserControl
在我的用户控件页面中,更新面板在 gridview 中不起作用。我使用了以下方法,但没有任何效果。谁能帮帮我。
方法一:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="gvClaimMasterDiv" runat="server" style="overflow: auto; height: 550px; margin: 0 auto; width:950px; border: 1px thin blue">
<asp:GridView ID="gvClaimMaster" runat="server" AllowSorting="True" ShowFooter="True" GridLines="Vertical" Width="950px"
Font-Size="Small" Font-Names="Calibri" CellPadding="4" AutoGenerateColumns="False" EmptyDataText="No Records Found" ForeColor="#333333"
OnSelectedIndexChanged="gvClaimMaster_SelectedIndexChanged" DataKeyNames="ClaimMasterId, AllocationId"
OnRowDataBound="gvClaimMaster_RowDataBound" OnRowEditing="gvClaimMaster_RowEditing" OnRowCancelingEdit="gvClaimMaster_RowCancelingEdit"
OnRowUpdating="gvClaimMaster_RowUpdating" OnDataBound="gvClaimMaster_DataBound" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="EditBtn" CommandName="Edit" runat="server"
ImageUrl="~/Img1/edit.gif" ToolTip="Edit Chart# / Claim#" Height="20px" Width="20px" />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="UpdateBtn" CommandName="Update" runat="server"
ImageUrl="~/Img1/save.gif" ToolTip="Save" Height="20px" Width="20px" />
<asp:ImageButton ID="CancelBtn" CommandName="Cancel" runat="server"
ImageUrl="~/Img1/cancel.gif" ToolTip="Cancel" Height="20px" Width="20px" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<p></p>
</div>
</ContentTemplate>
</asp:UpdatePanel>
方法:2
我使用了如下所示的 UpdateMode="Conditional"
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gvClaimMaster" />
</Triggers>
方法:3
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gvClaimMaster" EventName="RowEditing" />
</Triggers>
方法:4
将 UpdateMode 更改为 Always 并删除了 Triggers
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" ChildrenAsTriggers="true">
方法:5
给定 ItemTemplate
内的更新面板
<ItemTemplate>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="EditBtn" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:ImageButton ID="EditBtn" CommandName="Edit" runat="server"
ImageUrl="~/Img1/edit.gif" ToolTip="Edit Chart# / Claim#" Height="20px" Width="20px" />
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
最后我确定了问题 - ASP.NET AJAX UpdatePanels 和 jQuery 函数之间的冲突。感谢 Hajan Selmani 和他的 post.
ModalPopupExtender 阻止了 UpdatePanel 功能。所以我从 aspx 页面中删除了弹出脚本,并将其添加到 Page_Load 的代码隐藏中,如下所示
ClientScript.RegisterClientScriptInclude(this.GetType(), "myScript", "Style/gvAJAX/popup.js");
在我的用户控件页面中,更新面板在 gridview 中不起作用。我使用了以下方法,但没有任何效果。谁能帮帮我。
方法一:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div id="gvClaimMasterDiv" runat="server" style="overflow: auto; height: 550px; margin: 0 auto; width:950px; border: 1px thin blue">
<asp:GridView ID="gvClaimMaster" runat="server" AllowSorting="True" ShowFooter="True" GridLines="Vertical" Width="950px"
Font-Size="Small" Font-Names="Calibri" CellPadding="4" AutoGenerateColumns="False" EmptyDataText="No Records Found" ForeColor="#333333"
OnSelectedIndexChanged="gvClaimMaster_SelectedIndexChanged" DataKeyNames="ClaimMasterId, AllocationId"
OnRowDataBound="gvClaimMaster_RowDataBound" OnRowEditing="gvClaimMaster_RowEditing" OnRowCancelingEdit="gvClaimMaster_RowCancelingEdit"
OnRowUpdating="gvClaimMaster_RowUpdating" OnDataBound="gvClaimMaster_DataBound" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="EditBtn" CommandName="Edit" runat="server"
ImageUrl="~/Img1/edit.gif" ToolTip="Edit Chart# / Claim#" Height="20px" Width="20px" />
</ItemTemplate>
<EditItemTemplate>
<asp:ImageButton ID="UpdateBtn" CommandName="Update" runat="server"
ImageUrl="~/Img1/save.gif" ToolTip="Save" Height="20px" Width="20px" />
<asp:ImageButton ID="CancelBtn" CommandName="Cancel" runat="server"
ImageUrl="~/Img1/cancel.gif" ToolTip="Cancel" Height="20px" Width="20px" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<p></p>
</div>
</ContentTemplate>
</asp:UpdatePanel>
方法:2
我使用了如下所示的 UpdateMode="Conditional"
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gvClaimMaster" />
</Triggers>
方法:3
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="gvClaimMaster" EventName="RowEditing" />
</Triggers>
方法:4 将 UpdateMode 更改为 Always 并删除了 Triggers
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always" ChildrenAsTriggers="true">
方法:5 给定 ItemTemplate
内的更新面板 <ItemTemplate>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="EditBtn" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:ImageButton ID="EditBtn" CommandName="Edit" runat="server"
ImageUrl="~/Img1/edit.gif" ToolTip="Edit Chart# / Claim#" Height="20px" Width="20px" />
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
最后我确定了问题 - ASP.NET AJAX UpdatePanels 和 jQuery 函数之间的冲突。感谢 Hajan Selmani 和他的 post.
ModalPopupExtender 阻止了 UpdatePanel 功能。所以我从 aspx 页面中删除了弹出脚本,并将其添加到 Page_Load 的代码隐藏中,如下所示
ClientScript.RegisterClientScriptInclude(this.GetType(), "myScript", "Style/gvAJAX/popup.js");