2010-07-25 37 views
1

我有一個LinqDataSource和一個顯示錶的GridView。 xml列不顯示。我希望他們在Sql Server查詢輸出中顯示類似的內容,並顯示可點擊的xml鏈接,儘管可能有另一種方法我不考慮(也許是xml數據的樣式顯示等)。 )。我想知道的兩件事從LinqDataSource獲取Xml列以顯示在GridView中

  • 首先,將xml轉換爲字符串,並將其顯示在表中。也許前30個字符。
  • 最後,將xml設置爲有用的東西,比如可點擊的鏈接來顯示完整的xml,子表或字符串。

所以下面的工作,並顯示一個很好的表,編輯和刪除鏈接。但是Xml字段丟失。你將如何去添加對Xml字段的支持?

<form id="form1" runat="server"> 
<div> 
    <asp:LinqDataSource ID="OrdersDataSource" 
     OnContextCreating="LinqDataSource_ContextCreating" 
     runat="server" ContextTypeName="MyDbDataContext" 
     EnableUpdate="True" TableName="orders" 
     EnableDelete="true" 
     OrderBy="Status, UserId"> 
    </asp:LinqDataSource> 
    <asp:GridView ID="OrdersGridView" DataSourceID="OrdersDataSource" 
     CssClass="gridview" PageSize="30" AutoGenerateDeleteButton="true" 
     AutoGenerateEditButton="true" AllowPaging="True" AllowSorting="True" 
     AlternatingRowStyle-BackColor="Beige" DataKeyNames="OrderId" 
     runat="server" Width="705px"> 
     <Columns> 
     </Columns> 
    </asp:GridView> 
</div> 
</form> 

Page_Load目前爲空。

回答

0

最好的方法是使用GridView的RowDataBound事件。這將是這個樣子:

protected void OrdersGridView_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     var dataItem = e.Row.DataItem; 
     ... 
    } 
} 

我不知道的dataItem類型是什麼,但或許你可以將它轉換爲訂單類型(最容易看到在調試器中,只需設置一個斷點在RowDataBound事件處理程序)。你應該能夠從這個對象獲取你的XML數據。例如,當您擁有xml數據時,可以將其轉換爲字符串並獲取前30個字符。

要做的最後一件事是將此文本設置在正確的單元格中。請參閱example on MSDN

相關問題