如何绑定下拉列表的选定值,并将其分配给@TimeZone,就像当前选择它时一样,@TimeZone为null。
这是我的代码:
在我的页面加载中,有以下代码为下拉列表分配值:
ddlTimeZone.DataSource = from p in TimeZoneInfo.GetZones()
select new { p.Id };
ddlTimeZone.DataTextField = "Id";
ddlTimeZone.DataValueField = "Id";
ddlTimeZone.DataBind();接下来,在我的.aspx文件中,我有以下内容:
<EditItemTemplate>
<asp:DropDownList ID="ddlTimeZone" runat="server">
</asp:DropDownList>
</EditItemTemplate>..
InsertCommand="INSERT INTO [Companies] ([TimeZone]) VALUES ( @TimeZone)"
<InsertParameters>
<asp:Parameter Name="TimeZone" Type="String" />
</InsertParameters>同样,我需要知道的是,如何将下拉列表中选定的项的值分配给@TimeZone,就像当前选择它时一样,@TimeZone是空的。
我试过了
<asp:DropDownList ID="ddlTimeZone" SelectedValue='<%# Bind("TimeZone") %>' runat="server">
</asp:DropDownList>但是,这给出了以下错误消息:
'ddlTimeZone‘有一个无效的SelectedValue,因为它不存在于项目列表中。参数名称:值
发布于 2012-11-27 15:32:47
<%# Bind("TimeZone") %>返回的值不存在于下拉列表的值中,因为您要将其绑定到id TimeZoneInfo.GetZones()。给它一些存在于数据源中的id。
将此语句放在后面的代码中。
ddlTimeZone.SelectedValue = "idtthatexists";编辑:基于假设在由TimeZone ()返回的数据源中有GetZones
ddlTimeZone.DataSource = from p in TimeZoneInfo.GetZones()
select new { p.Id, p.TimeZone };
ddlTimeZone.DataTextField = "Id";
ddlTimeZone.DataValueField = "TimeZone";
ddlTimeZone.DataBind();
ddlTimeZone.Items.FindByText("SomeTextShowInDropDownItems").Selected = true;https://stackoverflow.com/questions/13587474
复制相似问题