有人可以帮我将DropDownList的选定值设置为数据库给定值。我有几个TextBox,从数据库中设置值并不难,但让我感到疯狂的是DropDownList。
<asp:TextBox ID="txtNaziv" runat="server" Width="430px" Text='<%# DataBinder.Eval(Container, "DataItem.Naziv") %>'></asp:TextBox>
据我所知,无法将所选项目值从代码前端设置为DropDownList,但我能够找到类似这样的内容(来自Telerik的RadGrid文档的代码片段):
protected void EmployeeDetails_DataBinding(object sender, System.EventArgs e)
{
ArrayList tocs = new ArrayList(new string[] { "Dr.", "Mr.", "Mrs.", "Ms." });
ddlTOC.DataSource = tocs;
ddlTOC.DataBind();
object tocValue = DataBinder.Eval(DataItem, "TitleOfCourtesy");
if (tocValue == DBNull.Value)
{
tocValue = "Mrs.";
}
ddlTOC.SelectedIndex = tocs.IndexOf((string)tocValue);
ddlTOC.DataSource = null;
}
问题是我正在使用Linq-to-SQL,我不知道如何重新创建类似上面的代码。这就是我目前所拥有的:
protected void ddlTip_DataBinding(object sender, EventArgs e)
{
TSEntities db = new TSEntities();
var partType = (from pt in db.PartType
select new { pt.idPartType, pt.Naziv }).ToArray();
ddlTip.DataSource = partType;
ddlTip.DataTextField = "Naziv";
ddlTip.DataValueField = "idPartType";
ddlTip.DataBind();
object Tip = DataBinder.Eval(DataItem, "idPartType");
}
我还要补充一点,这个TextBoxes和DropDownList位于UserControl内部,该控件正在Telerik的RadGrid中用于其EditForm。
任何帮助将不胜感激。
谢谢!
答案 0 :(得分:4)
您需要设置下拉列表的SelectedValue:
ddlTOC.SelectedValue = tocValue;
你也可以这样做:
ListItem li = ddlTOC.Items.FindByValue(tocValue);
if (li != null)
li.Selected = true;
修改强>: 包含将列表直接绑定到db.PartType:
的代码TSEntities db = new TSEntities();
ddlTip.DataSource = db.PartType;
ddlTip.DataTextField = "Naziv";
ddlTip.DataValueField = "idPartType";
ddlTip.DataBind();
ddlTip.SelectedValue = DataBinder.Eval(DataItem, "idPartType").ToString();
答案 1 :(得分:0)
试试这个
ddlTip.Items.FindByValue(tocs).Selected = true;