2011-07-05 24 views
0

更新:これは作業バージョンです。ObjectdatasourceをGridviewにバインドする方法

public DataSet GetObjects() 
{ 
    DataSet ds = new DataSet(); 
    DataTable dt = new DataTable(); 
    var source = from p in CommentsList 
       select new { p.Img, p.Name, p.Comment }; 
    dt.Columns.Add("Img"); 
    dt.Columns.Add("Name"); 
    dt.Columns.Add("Comment"); 

    foreach (var item in source) 
    { 
     DataRow userDetailsRow=dt.NewRow(); 
     userDetailsRow["Img"] = item.Img; 
     userDetailsRow["Name"] = item.Name; 

     DataRow comments = dt.NewRow(); 
     userDetailsRow["Comment"] = item.Comment; 
     dt.Rows.Add(userDetailsRow); 
     //dt.Rows.Add(comments); 
    } 
    ds.Tables.Add(dt); 
    return ds; 
} 

私のGridViewの列のセクションでは、次のようになります。

<Columns> 
    <asp:TemplateField HeaderText="#"> 
        <HeaderStyle Width="500px" /> 
        <ItemStyle Width="500px" Height="100px" /> 
        <ItemTemplate> 
         <asp:Label ID="lblMessage" runat="server" Text='<%# Bind("Comment") %>'></asp:Label> 
        </ItemTemplate> 
    </asp:TemplateField> 

     <asp:TemplateField HeaderText="#"> 
        <HeaderStyle Width="100px" /> 
         <ItemStyle Width="100px" Height="100px" /> 
        <ItemTemplate> 
         <asp:Image ID="imgName" runat="server" imageUrl='<%# Bind("Img") %>'></asp:Image><br /> 
         <asp:Hyperlink ID="hyperLink" runat="server" Text='<%# Bind("Name") %>' ></asp:Hyperlink> 
        </ItemTemplate> 
    </asp:TemplateField> 

UPDATE:私は今持っているrows..thatの大きさで巨大さで、内のコンテンツを更新していけない問題,,ヘッダー33%、行33%、フッター33%..ヘッダーの内容がグリッドビューの10%であるにもかかわらず、どうすればよいですか?あなたは

userDetailsRow["User"] = item.Img; 

をデータバインディングでこれを使用する前に、Imgの名前を使用してDataTableの列を追加する必要が

+0

ObjectDataSourceメソッドのこの行は正しいですか? 'userDetailsRow ["User =] = item.Img;'? –

答えて

0

はあなたがImg性質を持っていない

userDetailsRow["img"] = item.Img; 
+0

しかし、彼は '' img''カラムを追加しなかったので失敗します。 :) –

+0

lol..iは最終的には動作するようになりました。しかし、テーブルの行の高さは巨大です。グリッドの高さと行の高さがコンテンツに比例する方法はありますか? –

+0

GridView Cssのプロパティで確認できます。 –

1

でなければなりません。簡潔でシンプル。このため、アクセスに問題があります。存在しません。プロパティを作成し、を作成する必要があります。

更新

あなたはこれを行う必要があります。

var source = from p in CommentsList 
      select new { p.Img, p.Name, p.Comment }; 
dt.Columns.Add("User"); 
dt.Columns.Add("Comment"); 
dt.Columns.Add("Img"); 

し、この:それは適用され

DataRow userDetailsRow=dt.NewRow(); 
    userDetailsRow["Img"] = item.Img; 
    userDetailsRow["User"] = item.Name; 

修正を。

+0

ありがとうございましたAdrian..i問題を解決しました。上記のコードを更新してください –