gpt4 book ai didi

c# - 如何将 DataSource 设置为 DropDownList?

转载 作者:太空狗 更新时间:2023-10-29 23:32:47 24 4
gpt4 key购买 nike

我阅读了其他一些主题,但没有为我解决 =\我有一个 GridView,在一个字段中有一个 DropDownList。我想知道如何为此设置 DataSource?我没有使用模板,既没有 ItemTemplate 也没有使用 EditItemTemplate 我不知道它是如何工作的,所以我还没有使用它。

到目前为止,我只创建了 GridView 并用数据填充了字段,但我不知道如何为 DropDownList 做同样的事情。我猜缺少某样东西,它给我一个错误(“对象的引用未设置为对象的实例”)

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();
}

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

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);
}

也尝试过这个...

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>

代码隐藏:

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

最佳答案

在标记中绑定(bind)行数据绑定(bind)事件,如下:

<asp:GridView ID="grvGrid" runat="server" OnRowDataBound="grvGrid_RowBound">
<Columns>
<asp:TemplateField ItemStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Top" ItemStyle-Width="7%">
<ItemTemplate>
<asp:DropDownList ID="ddlList" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView?

在后面的代码中:

 protected void grvGrid_RowBound(object sender, GridViewRowEventArgs e)
{
DropDownList ddlList= (DropDownList )e.Row.FindControl("ddlList");
ddlList.DataSource = _dSource;
ddlList.DataTextField = "text";
ddlList.DataValueField = "value";
ddlList.DataBind();


}

如果你的下拉菜单每一行都有相同的选项,你不需要在 RowDataBound 事件期间绑定(bind)它。您可以在标记中将 item 添加到下拉列表中,如下所示:

 <asp:DropDownList id="ddlList"runat="server">

<asp:ListItem Selected="True" Value="White"> White </asp:ListItem>
<asp:ListItem Value="Silver"> Silver </asp:ListItem>
<asp:ListItem Value="DarkGray"> Dark Gray </asp:ListItem>
<asp:ListItem Value="Khaki"> Khaki </asp:ListItem>
<asp:ListItem Value="DarkKhaki"> Dark Khaki </asp:ListItem>

</asp:DropDownList>

关于c# - 如何将 DataSource 设置为 DropDownList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14323332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com