2

SqlDataSourceを使用してグリッドビューにドロップダウンリストを簡単に設定できることはわかっていますが、listitemsのみを含む限定リストについてはどうでしょうか。選択した値にバインドを設定すると、データソースがないと機能しないようです。これが私がこれまでに得たものの例です。

<EditItemTemplate>
   <asp:DropDownList ID="Fund"  runat="server" SelectedValue='<%# Bind("Fund") %>' >
      <asp:ListItem  Value="">---</asp:ListItem>
      <asp:ListItem Value="Test1">Test</asp:ListItem>
      <asp:ListItem Value="Test2">Test2</asp:ListItem>
   </asp:DropDownList>
</EditItemTemplate>

データベースに静的な10行のテーブルを作成しようとしているところまでは、このようなばかげた小さな問題のようです。

4

3 に答える 3

3

最も簡単な解決策はDictionary<TKey,TValue>、コード内にを作成して、DropDownListまたはにバインドするか、前述のように静的テーブルにバインドすることです...

サンプルコード:

Dictionary<string, string> list = new Dictionary<string, string>();
list.Add("item 1", "Item 1");
list.Add("item 2", "Item 2");
list.Add("item 3", "Item 3");
list.Add("item 4", "Item 4");

ddl.DataSource = list;
ddl.DataTextField = "Value";
ddl.DataValueField = "Key";
ddl.DataBind();
于 2012-07-05T15:20:36.137 に答える
1

これを試して:

Dictionary<string, string> items= new Dictionary<string, string>();
items.Add("-1","-Select-");
items.Add("Test1", "Test1");
items.Add("Test2", "Test2");
ddl.DataSource = items;
ddl.DataValueField = "Key";
ddl.DataTextField = "Value";
ddl.DataBind();
于 2012-07-05T15:24:36.120 に答える
0

DropDownListプログラムで設定したい。コントロールのユーザーを避けることを強くお勧めしますSqlDataSource。それは非常に不格好で、再利用の点ではあまり良くありません。

次のコードは、Entity Frameworkを使用して、データベースからユーザー名でデータを取得します。この関数を使用すると、このプロシージャを呼び出す必要があるたびDropDownListに作成しなくても、必要なデータをにバインドできます。SqlDataSource

public List<Record> GetAllRecordsByUserName(string credentials)
{
    List<Record> recordList;
    using (CustomEntities context = new CustomEntities())
    {

        IQueryable<Section> recordQuery = from records in context.Records
                                              where records.UserName == credentials
                                              select records; 
        recordList = recordQuery.ToList<Record>();
    }
    return recordList;
}

public void BindDropDown()
{
    DropDownList1.DataSource = GetAllRecordsByUserName("test.user");
    DropDownList1.DataBind();
}
于 2012-07-05T15:48:07.860 に答える