我有一个要在代码中填充的 DataTable,我将其添加到 DataSet,然后用于填充 GridView。除了我刚刚添加的位图列之外,这可以正常工作;我看不到我错过了什么。我的猜测是我完全错了,因为这是我第一次涉足网站代码:)
这是网格的页面代码 - 您可以看到我没有指定单个列,它们只是自动来自 DataSet。
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:GridView ID="gridTicketsByGroup" runat="server" CaptionAlign="Left" CellPadding="4" DataSourceID="TicketsByGroupDatasource" Font-Size="Medium" ForeColor="#333333" GridLines="None" Font-Names="Verdana">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" Font-Size="Medium" HorizontalAlign="Left" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
<asp:ObjectDataSource ID="TicketsByGroupDatasource" runat="server" SelectMethod="ShowTicketsByGroupReport" TypeName="PhoneMonitor.GroupReport"></asp:ObjectDataSource>
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Tick">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
我刚才的select方法返回了包含DataTable的DataSet:
returnedDataSet.Tables.Add(dataRetriever.TicketsByGroupTable);
return returnedDataSet;
为了测试,到目前为止我已经添加了一张位图。整个专栏根本没有显示。列添加如下:
TicketsByGroupTable.Columns.Add("Logo", typeof(Bitmap));
row[0] = LoadIcon(rowName);
private Bitmap LoadIcon(string ProductName)
{
string fileName = "";
switch (ProductName)
{
case "Test":
fileName = "PhoneMonitor.Icons.Test.png";
break;
}
if (fileName != "")
{
System.Reflection.Assembly thisAss = System.Reflection.Assembly.GetExecutingAssembly();
Bitmap b = new Bitmap(thisAss.GetManifestResourceStream(fileName));
return b;
}
else return null;
}
如果我预览表格,它看起来已经加载好了: