gpt4 book ai didi

c# - UpdatePanel 中 UpdateMethod 后 GridView 的刷新

转载 作者:行者123 更新时间:2023-11-30 15:50:32 25 4
gpt4 key购买 nike

我在 UpdatePanel 中设置了一个 GridView。 GridView 有一个 SELECT CommandField 绑定(bind)到 Gridview1_SelectedIndexChanged 方法。我希望 GridView 在选择一行后刷新,但它永远不会。我尝试了几种不同的方案,但似乎都不起作用。

  • 我已将 UpdatePanel 上的 UpdateMode 设置为“条件”和“始终”,并尝试在后面的代码中强制更新 UpdatePanel。
  • 我已将 CommandField 转换为带有按钮的模板字段

这是经过清理的代码:

  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1"
runat="server"
AllowPaging="True"
AllowSorting="True"
AutoGenerateColumns="False"
DataSourceID="ObjectDataSource1"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
PagerSettings-Visible="true" EnableViewState="False" >
<Columns>
<asp:CommandField ButtonType="Image"
SelectImageUrl="~/images/icon.gif"
ShowSelectButton="True" />
<asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
<asp:BoundField DataField="Title" HeaderText="Title"
SortExpression="Title" />
</Columns>
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="GridView1"
EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>

数据源看起来像这样......

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DataObjectTypeName="myNamespace.Item"
InsertMethod="myInsertMethod"
SelectMethod="mySelectMethod"
TypeName="myNamespace.ItemMgr"
UpdateMethod="myUpdateMethod">
</asp:ObjectDataSource>

最佳答案

我想我明白了你的问题。尝试将 DataKeyNames 参数添加到 GridView,其中包含您要操作的行的 ID。接下来删除 Triggers 部分,因为您不需要它们来完成您正在做的事情。由于您想对某事采取行动,因此请将 CommandField 更改为其他选项之一,例如您当前未使用的 Delete。接下来修改您的 ObjectDataSource 以在您的 myNamespace.ItemMgr 中定义一个 DeleteMethod,它接受来自 GridView 的 Id(DataKeyNames 参数)并执行您希望执行的任务。方法返回后,它将根据定义的 SelectMethod 刷新 GridView。

  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1"
runat="server"
AllowPaging="True"
AllowSorting="True"
AutoGenerateColumns="False"
DataSourceID="ObjectDataSource1"
PagerSettings-Visible="true" EnableViewState="False"
DataKeyNames="Id" >
<Columns>
<asp:CommandField DeleteImageUrl="/images/icon.gif"
DeleteText="Some Text"
ShowDeleteButton="True"
ButtonType="Image" />
<asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
<asp:BoundField DataField="Title" HeaderText="Title"
SortExpression="Title" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
DeleteMethod="myDeleteMethod" SelectMethod="mySelectMethod"
TypeName="myNamespace.ItemMgr">
</asp:ObjectDataSource>

关于c# - UpdatePanel 中 UpdateMethod 后 GridView 的刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/528924/

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