2015-12-23 6 views
6

コードでgridviewを作成したいと思います。私のコードは次のとおりです。どのようにC#の背後にあるコードでobjectdatasourceでgridviewを追加する?

<asp:TemplateField ItemStyle-CssClass="GridItemTemplateField"> 
    <ItemTemplate> 
     <a href="Question.aspx?id=<%# Eval("ID")%>"><%# Eval("Content").ToString().PadRight(140).Substring(0,140).TrimEnd()+"..." %></a> 
    </ItemTemplate> 
</asp:TemplateField> 

はどのようにそれを行うことができます。

GridView gdvList = new GridView(); 
gdvList.ID = "gdvList" ; 
TemplateField tField = new TemplateField(); 
BoundField dateBF = new BoundField(); 
dateBF.DataField = "Date"; 
gdvList.Columns.Add(dateBF); 
BoundField countResponse = new BoundField(); 
countResponse.DataField = "CountResponse"; 
gdvList.Columns.Add(countResponse); 
ObjectDataSource ods = new ObjectDataSource(); 
ods.ID = "ods"; 
ods.TypeName = "Project.BLLQuestion"; 
ods.SelectMethod = "GetByGroupID"; 
ods.SelectParameters["GroupID"] = new Parameter("inGroupID", DbType.Int32, "0"); 
ods.DataBind(); 
gdvList.DataSource = ods; 
gdvList.DataBind();  

は、このコードではないTemplateFieldを動作しない、そしてどのように追加するには?

+0

なぜコードからグリッドを生成したいのですか? – User2012384

+0

私たちはグループを動的に持っています。我々はそれを必要とします – shahroz

+0

代わりにリピーターを使用しないでください。 – User2012384

答えて

1
  1. DataSourceではなく、DataSourceIDグリッドのプロパティを設定する必要があります。
  2. DataBind()メソッドをObjectDataSourceにする必要はありません。
  3. ObjectDataSourceGridViewの両方のコントロールがPageに追加されていることを確認してください。あなたの2番目の質問によると

    ObjectDataSource ods = new ObjectDataSource(); 
        ods.ID = "ods"; 
        ods.TypeName = "Project.BLLQuestion"; 
        ods.SelectMethod = "GetByGroupID"; 
        ods.SelectParameters["GroupID"] = new Parameter("inGroupID", DbType.Int32, "0"); 
    
        Page.Controls.Add(ods); 
    
        GridView gdvList = new GridView(); 
        gdvList.ID = "gdvList" ; 
        gdvList.DataSourceID = "ods"; 
    
        BoundField dateBF = new BoundField(); 
        dateBF.DataField = "Date"; 
        gdvList.Columns.Add(dateBF); 
    
        BoundField countResponse = new BoundField(); 
        countResponse.DataField = "CountResponse"; 
        gdvList.Columns.Add(countResponse); 
    
        Page.Controls.Add(gdvList); 
    
        gdvList.DataBind(); 
    

はこれを試してみてください。 TemplateFieldHyperLinkFieldで置き換えてください。詳細はhereをクリックしてください。

関連する問題