我有1列的網格。在用戶交互期間,更多的列被構建並動態添加。無論從網格中添加或刪除多少列,都應始終保留「初始打印」按鈕列。這是網格。當我刪除ASPxGridView中的所有其他列時,爲什麼我在列中丟失了DataItemTemplate控件?
<dx:ASPxGridView ID="gvAdvancedResults"
ClientInstanceName="gvAdvancedResults" runat="server" EnableRowsCache="False" KeyFieldName="ID" AutoGenerateColumns="True">
<Columns>
<dx:GridViewDataColumn Width="3%" VisibleIndex="0" Caption="Print">
<DataItemTemplate>
<dx:ASPxButton ID="btnDisplayMEC" runat="server" OnClick="btnDisplayMEC_OnClick" ClientInstanceName="btnDisplayMEC" CommandArgument='<%# Eval("ID") %>'
CssClass="reportbutt" BackColor="Transparent" Border-BorderStyle="None" Width="16" Height="16">
<Image Url="~/Assets/Images/printer.png" Width="16" Height="16"></Image>
</dx:ASPxButton>
</DataItemTemplate>
</dx:GridViewDataColumn>
</Columns>
</dx:ASPxGridView>
點擊一個按鈕,我用下面從數據表DT
'Remove all columns except the first (index 0)
For gix As Integer = gvAdvancedResults.Columns.Count - 1 To 1 Step -1
If gix <> 0 Then gvAdvancedResults.Columns.RemoveAt(gix)
Next
'Add new columns to the gridview
For Each col As DataColumn In dt.Columns
Dim xcol As Object = gvAdvancedResults.Columns(col.ColumnName)
If xcol IsNot Nothing Then Continue For
Dim newcol As New GridViewDataColumn(col.ColumnName, col.ColumnName)
gvAdvancedResults.Columns.Add(newcol)
Next
gvAdvancedResults.DataSource = dt
gvAdvancedResults.DataBind()
清除和重新填充網格列現在,這裏的問題。 「打印」列保留在列刪除過程中(因爲它應該),但列的DataItemTemplate中的ASPxButton消失。應該添加所有應該添加的列。
爲什麼我失去了我的打印按鈕,但保持其列?
在將colomn添加到您的gridview之前,將該按鈕添加到您的colomn中? –
該按鈕已經創建,但。其列在列刪除過程中被跳過。如果該列未被刪除(也未觸及),爲什麼該按鈕不顯示? –
奇怪的結果,我承認,也許是一個錯誤,當重新綁定源,如果你只是不做任何datasource =和databind()會發生什麼? –