0

ドロップダウンリストにデータソースを追加したい。このドロップダウンリストは、グリッドビューの列の 1 つです。ここでは、sqldatasource を使用せずにデータソースをドロップダウン リストに動的に追加します。

(vs2008 および c#)

4

3 に答える 3

1

はい、itemtemplate にあるので、findcontrol を使用する必要があるために直接取得することはできません

于 2009-06-09T07:23:15.290 に答える
1

グリッドのドロップダウン リスト コントロールの OnDataBinding イベントを実装できます。イベントでは、DataSource プロパティとその他の属性を好きなものに割り当てることができます。List<YourObject>それを偶数にバインドします。

OnDataBinding イベントで実行すると、その場で ddl の値をカスタマイズすることもできます。そのため、そのタイプの機能が必要な場合、各行の ddl には、行内の他のデータに基づいて使用可能なオプションの異なるセットを含めることができます。

自動 (イージー モード) 接続の代わりに OnDataBinding メソッドを使用すると、ASP.NET コントロールの柔軟性が大幅に向上します。

于 2009-06-09T05:56:44.717 に答える
0

ここにあなたが探しているコードがあります

例 1 :

public enum Color
{
    RED,
    GREEN,
    BLUE
}

すべての Enum 型は System.Enum から派生します。データをドロップダウン リスト コントロールにバインドする (および値を取得する) のに役立つ 2 つの静的メソッドがあります。これらは Enum.GetNames と Enum.Parse です。GetNames を使用すると、次のようにドロップダウン リスト コントロールにバインドできます。

protected System.Web.UI.WebControls.DropDownList ddColor;

private void Page_Load(object sender, System.EventArgs e)
{
     if(!IsPostBack)
     {
        ddColor.DataSource = Enum.GetNames(typeof(Color));
        ddColor.DataBind();
     }
}

例 2 :

List<Person> myPList = new List<Person>();



Person p1 = new Person();

p1.ID = 1;

p1.Name = "Bob";

p1.Color = "Blue";



Person p2 = new Person();

p2.ID = 2;

p2.Name = "Joe";

p2.Color = "Green";



myPList.Add(p1);

myPList.Add(p2);



this.DropDownList1.DataSource = myPList;

this.DropDownList1.DataTextField = "Color";

this.DropDownList1.DataValueField = "ID";

this.DropDownList1.DataBind();  

より完全な練習については、こちらをご覧ください: https://stackoverflow.com/a/9076237/132239

また、常に回答を回答としてマークすることを忘れないでください

于 2012-01-31T08:20:15.243 に答える