2012-03-13 106 views
0

我新的ASP.NET和並不真正瞭解如何與數據庫中的數據顯示錶。數據被加載到一個對象中,我有一個對象列表。DataGrid和格式化數據

現在我想要顯示一個表,其中包含一些列,一個圖像(從對象中的兩個字段創建的路徑),一個鏈接(傳遞對象的一個​​字段),一個textarea(來自對象的id,來自對象的值) ,一個單選按鈕(來自對象的ID)。

我該怎麼做。我已經嘗試綁定到對象列表的數據網格,它的工作原理。但我不想顯示所有數據成員,而且我也不知道如何創建正確的標題以及圖像和表單控件。

ImageDataGridView.DataSource = tradeObj.Images; 
    ImageDataGridView.DataBind(); 
+0

是什麼tradeObj.Images; – 2012-03-13 10:07:38

回答

1

可以使用boundfield

​​

spefify你列頁眉和您需要關閉:

ImageDataGridView.AutoGenerateColumns = false 

爲了格式的值看看這個link在MSDN。

1

要停止自動創建在數據源中的每一列一列的,設置:

ImageDataGridView.AutoGenerateColumns = false 

然後,你需要定義一個列在你要顯示的數據源中的每一列 - 這取決於在列上你可能想要一個綁定列(你可以控制格式)或更多的參與。

進行了抽查,可用

1

不同列類型,您需要使用模板字段自定義您的數據網格按以下

<asp:GridView ID="GridView1" runat="server"> 
    <Columns> 
    <asp:TemplateField ShowHeader="True"> 
     <ItemTemplate> 
     <asp:Image runat="server" ID="Image1" 
      ImageUrl="Enabled.gif" /> 
     </ItemTemplate> 
    </asp:TemplateField> 
...... 
...... 
    </Columns> 
</asp:GridView> 

請參閱本msdn link DataGrid中

與模板領域的工作見 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.datagrid.columns.aspx

更新

要遍歷gridview的每一行,您需要按照以下方式處理Rowdatabound事件。

protected void gridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
{ 
    if(e.Row.RowType == DataControlRowType.DataRow) 
    { 
     Image imgCtrl = (Image) e.Row.FindControl("imgCtrl"); 
     imgCtrl.ImageUrl = "you can apply any format of url here"; 
    } 
} 

的RowDataBound事件訪問this link

+0

謝謝,這適用於我的標籤和文本框。但是圖像有一個基於ID的url和一個名爲fileExtension的字段。有沒有一種方法來格式化多個字段的網址? – Lars 2012-03-13 17:41:36

+0

@Lars請看我更新的答案。 – 2012-03-14 04:54:35

0

的更多信息,你的DataGrid/GridView控件只需設置autogenerate to false。然後,您可以創建一個模板列列&拖放標籤或文本框控件內的ItemTemplate &綁定他們像

<asp:Label ID="lblMyColumn" Text="<%# Bind("YourColumnName") %>' runat="server"></asp:Label> 

另外,您也可以放下一個BoundField &設置其屬性

<asp:BoundField DataField="YourColumnName" HeaderText="Your Text" SortExpression="YourColumnName" />