C# 过滤器表达式';名字';不计算为布尔项
我正在绑定一个DropDownList,我在第一列中有FirstName,在第二列中将LastName作为DDLC# 过滤器表达式';名字';不计算为布尔项,c#,asp.net,datatable,dataset,C#,Asp.net,Datatable,Dataset,我正在绑定一个DropDownList,我在第一列中有FirstName,在第二列中将LastName作为DDL protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e) { DataTable myTable = new DataTable(); DataColumn productIDColumn = new DataColumn("FirstName"); DataC
protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
{
DataTable myTable = new DataTable();
DataColumn productIDColumn = new DataColumn("FirstName");
DataColumn productNameColumn = new DataColumn("LastName");
myTable.Columns.Add(productNameColumn);
DataSet ds = new DataSet();
ds = get();
if (e.Row.RowType == DataControlRowType.DataRow)
{
var categoryID = (e.Row.Cells[0].Text);
var expression = "FirstName "+categoryID;
DropDownList ddl = (DropDownList)e.Row.FindControl("DropDownList1");
DataRow[] rows = ds.Tables[0].Select(expression);
foreach (DataRow row in rows)
{
DataRow newRow = myTable.NewRow();
newRow["UserId"] = row["UserId"];
newRow["LastName"] = row["LastName"];
myTable.Rows.Add(newRow);
}
ddl.DataSource = myTable;
ddl.DataTextField = "LastName";
ddl.DataValueField = "UserId";
ddl.DataBind();
}
}
我在DataRow[]rows=ds.Tables[0]处收到一个错误,如筛选器表达式“FirstName”的计算结果不是布尔项
谁能帮我一下吗?你的表情毫无意义。我希望有以下几点:
var expression = "FirstName = 'John'";
或
查看选择方法的文档:您需要比较表达式中的两个值。阅读本文:在这种上下文中,“DDL”是指下拉列表吗?哎呀,我不知道,但即使我喜欢DDL是空的。即使我比较了这些值,DDL也是空的。你确定你的表达式是正确的吗?您正在将FirstName与ID进行比较(或者看起来就是这样):var expression=“FirstName=“+categoryID;问题是categoryid也为空不知道为什么??将categoryid键添加到GridView1的DataKeyNames中。然后,在GridView1_RowDataBound1事件中获取ID:if(e.Row.RowType==DataControlRowType.DataRow){DataRowView rowView=(DataRowView)e.Row.DataItem;int myDataKey=Convert.ToInt32(rowView[“categoryID]”);但是填充DDL时,数据表为空。
var expression = "CategoryId = 42";