我编写了一个从数据库中检索数据并返回包含三列的数据表的方法。
这个数据表在隐藏 ID 字段后绑定到一个gridview控件。
DataTable dt = _qbObj.getAllTags();
dvTags.DataSource = dt;
BoundField bfName = new BoundField();
bfName.DataField = dt.Columns["Name"].ToString();
bfName.HeaderText = "Name";
BoundField bfId = new BoundField();
bfId.DataField = dt.Columns["ID"].ToString();
bfId.Visible = false;
BoundField bfDesc = new BoundField();
bfDesc.DataField = dt.Columns["Description"].ToString();
bfDesc.HeaderText = "Description";
dvTags.Columns.Add(bfId);
dvTags.Columns.Add(bfName);
dvTags.Columns.Add(bfDesc);
dvTags.DataBind();
对于这个 gridview 控件,我想添加一个编辑按钮,它应该会弹出一个 jquery 模式对话框,我可以在其中输入更新的详细信息。
我意识到我可以使用 a ,但问题是我需要在不刷新页面的情况下弹出该模式对话框,并且不完全支持脚本。
因此,在我的 gridview 中,我插入了一个Item Template。
<asp:GridView ID="dvTags" runat="server" CssClass="labs-grid-view"
AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnEdit" runat="server" Text="Edit" OnClick="dvTagEdit" CommandName="UpdateRecord"
CommandArgument='<%# Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
现在,在我完成编辑后,gridview 不会自动更新,因此我有一个专用的刷新网格按钮,它使用以下代码删除现有的“动态插入的列”:-
int noOfRows = dvTags.Columns.Count;
if (noOfRows > 1)
{
dvTags.Columns.RemoveAt(noOfRows - 1);
dvTags.Columns.RemoveAt(noOfRows - 2);
dvTags.Columns.RemoveAt(noOfRows - 3);
// THERE ARE A TOTAL OF **THREE** COLUMNS
}
但问题是,刷新页面几次后,我在 ItemTemplate 中的按钮消失了,在 html 中被替换为“”
请帮我找出错误。我在想有一种更好更简单的方法来实现这一点。如果是这样,我对他们开放。
谢谢阅读,
阿比杰特。