我已經爲每列使用Itemtemplate創建了一個批量編輯gridview。非編輯模式的標籤,編輯模式的文本框。但是,這隻有在gridview的結構已知的情況下才有效(在asp中定義模板)。當從下拉列表中選擇值時顯示可編輯的Gridview
<asp:TemplateField HeaderText="Name" ConvertEmptyStringToNull="True">
<ItemTemplate>
<asp:Label ID="lblName" Visible='<%# !(bool) IsInEditMode %>' runat="server" Text='<%# Eval("name") %>' />
<asp:TextBox ID="txtName" ControlStyle-CssClass="wide" Visible='<%# IsInEditMode %>'
runat="server" Text='<%# Eval("name") %>' />
</ItemTemplate>
</asp:TemplateField>
現在,我想實現的是當用戶選擇下拉值時,sql查詢被觸發並返回結果。這個結果顯示在gridview中。但是問題的產生是因爲從下拉菜單中選擇的每個結果的結果列數可能會有所不同。我想使gridview可編輯(或只讀)。這需要爲每列定義兩個模板。
所以我想知道這可以動態完成,即定義模板取決於SQL返回的列數。
sql查詢返回的結果是否像無限?我的意思是說你知道查詢的上限,比如你的gridview需要有多少列? – Anurag 2015-02-24 16:34:52
不,這不是無限的。 GridView需要的列的數量不會超過20個。 – 2015-02-24 16:38:30
然後有一個20列的gridview,當你從SQL查詢結果中選擇了特定的數量時,試圖隱藏不需要的列。我知道這不是好簡單。當你綁定gridview時,你需要以某種方式獲取列的數量和列的順序。 – Anurag 2015-02-24 16:43:14