我在尝试提供DDL 2 DataTextFields时遇到了问题。
DataTable ServiceClonRegister = doc.getAllDataRegs(1, 999999999, "b.RegisterId=8 AND b.ACTIVE=1");
iServiceClon.DataSource = ServiceClonRegister;
iServiceClon.DataTextField = "Name" + "CODE";
iServiceClon.DataValueField = "ROWID";
iServiceClon.DataBind();
iServiceClon.Items.Insert(0, new ListItem("Please, pick!", "0", true));
iServiceClon.SelectedIndex = 0;
关于如何实现它的任何建议? 这是元素的html:
<select class="DropDownListHint mandatory" id="iServiceClon" runat="server" aria-describedby="lbiOffice"
data-live-search="true" data-placement="top" data-toggle="dropdown" data-style="DropDownListHint-datastyle">
</select>
答案 0 :(得分:2)
解决方案1: 您可以创建表达式列&amp;将其添加到您的DataTable。
DataColumn dc = new DataColumn("NEwColumnName");
dc.Expression = "Isnull(Name,'') +Isnull(Code,'')";
iServiceClon.Columns.Add(dc);
&安培;使用dataTextfield中的新列。这样可以节省很多循环。
解决方案2: 如果数据表来自SQL查询,请在选择时在其中创建虚拟计算列。
答案 1 :(得分:1)
您可以通过查询以两个值返回第三列的方式更改填充DataTable
的代码。或者,您可以自己添加列并将连接值放入其中。如下所示:
DataTable ServiceClonRegister = doc.getAllDataRegs(1, 999999999, "b.RegisterId=8 AND b.ACTIVE=1");
ServiceClonRegister.Columns.Add("NameAndCode");
foreach (DataRow row in ServiceClonRegister.Rows)
{
row["NameAndCode"] = row["Name"].ToString() + row["CODE"].ToString();
}
iServiceClon.DataSource = ServiceClonRegister;
iServiceClon.DataTextField = "NameAndCode";
iServiceClon.DataValueField = "ROWID";
//rest of your code