如何将DataSource设置为DropDownList?

Gha*_*eon 5 c# asp.net visual-studio-2010 web

我读了一些其他的线程并没有为我工作= \我有GridView一个DropDownList在一个领域.我想知道我怎么设置一个DataSource呢?我没有使用模板既不是ItemTemplate也不是EditItemTemplate我不知道它是如何工作的,所以我还没有使用它.

到目前为止,我只创建了GridView并用数据填充了字段,但我不知道如何为它做同样的事情DropDownList.我觉得太遗憾了,它给了我一个错误("The Reference of the Object was not set as an instance of an object")

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {                                
            DropDownList Drop_Prioridades = (DropDownList)e.Row.FindControl("Drop_Prioridades");
            Drop_Prioridades.DataTextField = "BAIXA";
            Drop_Prioridades.DataValueField = "1";
            Drop_Prioridades.DataTextField = "MEDIA";
            Drop_Prioridades.DataValueField = "2";
            Drop_Prioridades.DataTextField = "ALTA";
            Drop_Prioridades.DataValueField = "3";
            Drop_Prioridades.DataBind();
        }
Run Code Online (Sandbox Code Playgroud)

我也试过这个/同样的错误= \

DataSet ds = func.LoadPriority();

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                ListItem item = new ListItem();
                item.Text = row["prioridade"].ToString();
                item.Value = row["id"].ToString();
                DropDownList ddlPrioridades = (DropDownList)e.Row.FindControl("Drop_Prioridades");
                ddlPrioridades.Items.Add(item);
            }
Run Code Online (Sandbox Code Playgroud)

并试过这个......

HTML:

<columns>                    

     <asp:TemplateField HeaderText="PRIORIDADE" ItemStyle-HorizontalAlign="Center" HeaderStyle-Width="100px">
            <ItemTemplate>
                <asp:DropDownList ID="Drop_Prioridades" Width="120px" runat="server" ></asp:DropDownList> 
</ItemTemplate>                    
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)

代码背后:

 DataSet ds = func.CarregaPrioridade();
            DropDownList ddlist = (DropDownList)e.Row.FindControl("Drop_Prioridades");
            ddlist.DataSource = ds;
            ddlist.DataTextField = "prioridade";
            ddlist.DataValueField = "id";
Run Code Online (Sandbox Code Playgroud)

Gha*_*eon 0

我这样解决了我的问题:

DataSet ds = SomeMethodToFillTheDataSet()

foreach(DataRow row in ds.tables[0].Rows)
{
  ListItem item = new ListItem();
  item.text = "fieldName";  e.g  Name
  item.value = "FieldName"; e.g  ID
  DropDOwnList.Items.Add(item);
}
Run Code Online (Sandbox Code Playgroud)