我寫了一個方法,它從數據庫中檢索數據,並返回包含三個列的數據表。向Gridview添加編輯按鈕
此數據表我綁定到gridview控件後隱藏ID字段。
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模態對話框,在這裏我可以進入更新的詳細信息。
我意識到我可以去一個,但問題是我需要彈出該模式對話框,而不刷新頁面,並且不完全支持腳本。
所以在我的gridview插入這個,項目模板。
<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替換爲「 」
請幫我找到錯誤。我認爲有一個更好,更簡單的方法來實現這一點。如果是的話,我向他們開放。
感謝您的閱讀,
Abijeet。