【发布时间】:2013-01-08 20:16:54
【问题描述】:
我编写了一个从数据库中检索数据并返回由 三 列组成的数据表的方法。
在隐藏 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 ,但问题是我需要在不刷新页面的情况下弹出该模式对话框,并且不完全支持脚本。
所以我在我的网格视图中插入了一个项目模板。
<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 中被替换为“ ”
请帮我找出错误。我在想有一种更好更简单的方法来实现这一点。如果是这样,我愿意接受他们。
感谢阅读,
阿比吉特。
【问题讨论】: