gpt4 book ai didi

c# - 如何在 c# 中绑定(bind) gridview rowdatabound 中的下拉列表?

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:21 24 4
gpt4 key购买 nike

这是我在 GridView 中的 Edit Item Template 中的 Drop Down List 在 c# 中

<asp:DropDownList runat="server" ID="ddlFl" AutoPostBack="true"
OnSelectedIndexChanged="ddlFl_SelectedIndexChanged"
DataValueField='<%# Eval("ID").ToString() %>'>
<asp:ListItem Text="[ Select ]" Value=""></asp:ListItem>
<asp:ListItem Text="-------------" Value=""></asp:ListItem>
<asp:ListItem Text="0" Value="0"></asp:ListItem>
<asp:ListItem Text="1" Value="1"></asp:ListItem>
<asp:ListItem Text="2" Value="2"></asp:ListItem>
</asp:DropDownList>

当用户点击编辑时,网格进入编辑模式。

如果是产品子类别,我们将 tbl_2 表中可用的所有产品类别的列表加载到下拉列表中,可供用户选择,如果该行存在值,则为在下拉列表中选择。

我尝试过这种模式但没有成功,因为我有错误:

Data binding methods such as Eval (), XPath (), and Bind () can only be used in the context of a data-bound control.

如何解决这个问题?

你能帮帮我吗?

在此先感谢您的帮助,非常感谢。

protected void ddlFl_SelectedIndexChanged(object sender, EventArgs e)
{

DropDownList btn = (DropDownList)sender;
string indexID = btn.DataValueField;
string LinkID = btn.SelectedValue;
GridViewRow row = (GridViewRow)btn.NamingContainer;

Response.Write(LinkID);

}


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{

if (e.Row.DataItem != null)
{
if ((e.Row.RowState & DataControlRowState.Edit) > 0)
{
DropDownList ddlFl = (DropDownList)e.Row.FindControl("ddlFl");
ddlFl.DataTextField = "Dip";
ddlFl.DataValueField = "Dip";
ddlFl.DataSource = RetrieveSubCategories();
ddlFl.DataBind();
DataRowView dr = e.Row.DataItem as DataRowView;
ddlFl.SelectedValue = dr["Dip"].ToString();
}
}
}
}


private DataTable RetrieveSubCategories()
{
DataTable dtSubCategories = new DataTable();

sql = @String.Format(" SELECT Dip FROM `tbl_2` GROUP BY Dip; ");

using (OdbcConnection myConnectionString =
new OdbcConnection(ConfigurationManager.ConnectionStrings["ConnMySQL"].ConnectionString))
{
using (OdbcCommand cmd =
new OdbcCommand(sql, myConnectionString))
{
{
OdbcDataAdapter adapter =
new OdbcDataAdapter(cmd);
adapter.Fill(dtSubCategories);
}
}
}
return dtSubCategories;
}

最佳答案

DataSource必须在第一个位置,然后是数据文本和值字段:

DropDownList ddlFl = (DropDownList)e.Row.FindControl("ddlFl");
ddlFl.DataSource = RetrieveSubCategories();
ddlFl.DataTextField = "Dip";
ddlFl.DataValueField = "Dip";
ddlFl.DataBind();

关于c# - 如何在 c# 中绑定(bind) gridview rowdatabound 中的下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49108086/

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