我有以下GridView
,其作爲一個DataSource
List<T>
:GridView的RowDataBound事件處理程序沒有找到GridView的細胞含量
<asp:GridView ID="gvDownloads" UseAccessibleHeader="False"
AutoGenerateColumns="False" runat="server" PageSize="10" AllowPaging="true"
CellPadding="4" CellSpacing="1" GridLines="None" DataKeyNames="productid">
<EmptyDataTemplate>
No licenses found
</EmptyDataTemplate>
<Columns>
<asp:TemplateField HeaderText="Id" >
<ItemTemplate>
<%# Eval("ProductId")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Product Name">
<ItemTemplate>
<%# Eval("ProductName")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Stock Code">
<ItemTemplate>
<%# Eval("StockCode")%>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
哪個正確呈現,並與正確的價值觀。現在
,我想在飛行領域StockCode,爲了做到這一點我在後面我的代碼修改:
Sub gvDownloads_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles gvDownlads.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
e.Row.Cells(2).Text = StockCodeConverter.Convert(e.Row.Cells(2).Text)
End If
End Sub
但對應StockCode數據單元格爲空。現在我試着去調試,由於某些原因代碼只找到了標題行的值。其他行的值是string.Empty
或&收縮壓。可能它依賴於List作爲DataSource?
好,謝謝,我會嘗試你的解決方案!無論如何,你可以解釋爲什麼它沒有找到價值? DataBind稍後發生? – CiccioMiami
@CiccioMiami:因爲你可以通過自己的ID的訪問'TemplateField'contains控制。如果您不想使用它,您可以使用「BoundField」,那麼單元格的「Text」屬性將不會爲空。 –
我不知道,網絡是全約的RowDataBound例子,但沒有人在這種情況下,範圍!感謝您的解釋! – CiccioMiami