动态绑定下拉控件的选择
Dynamically binding a dropdown control's selection
我有一个主页,我在其中通过 <asp:Repeater.../>
控件创建了 div。现在,在 <div>
按钮上的点击事件上,我将页面重定向到我有 <asp:DropDown.../>
控件的注册表单。
在注册页面的 Page_Load
事件中,我从数据库填充下拉列表并设置 DataTextField
和 DataValueField
。
现在我将 EventTypeID
分配给 dropdown.DataValueField
,将 Name
分配给 dropdown.DataTextField
。我还检查了渲染时的下拉列表是否包含 value
字段中的 EventTypeID
..
这是代码:
protected void Page_Load(object sender, EventArgs e)
{
EventTypeLogic eventTypeLogic = new EventTypeLogic();
int eventTypeID = Convert.ToInt32(Request.QueryString["Id"]);
ddlEventType.DataSource = eventTypeLogic.populateEventTypeDDL();
ddlEventType.DataValueField = "EventTypeID";
ddlEventType.DataTextField = "Name";
ddlEventType.DataBind();
ddlEventType.Items.Insert(0, new ListItem("Select Event Type", "0"));
if (eventTypeID > 0)
{
ddlEventType.SelectedIndex = eventTypeID;
}
}
DropDown aspx 代码:
<asp:DropDownList ID="ddlEventType" runat="server" CssClass="span2 form-info" />
主页代码:
</p><h6><a class="btn btn-custom" href='<%# "HostEvent.aspx?ID=" + Eval("EventTypeID") %>' ><b>host event</b></a></h6>
问题:我希望下拉列表应该根据主页上的选择预先选择值。
更新:
protected void Page_Load(object sender, EventArgs e)
{
EventTypeLogic eventTypeLogic = new EventTypeLogic();
int eventTypeID = Convert.ToInt32(Request.QueryString["Id"]);
string name = eventTypeLogic.resolveToName(eventTypeID);
ddlEventType.DataSource = eventTypeLogic.populateEventTypeDDL();
ddlEventType.DataValueField = "EventTypeID";
ddlEventType.DataTextField = "Name";
ddlEventType.Items.Insert(0, new ListItem("Select Event Type", "0"));
//ddlEventType.DataBind();
ddlEventType.SelectedIndex = eventTypeID;
ddlEventType.DataBind();
}
如果您希望 EventName
应该显示为您的 Ddl
中的预选值,而不是仅仅使用 eventTypeId
触发查询并获取该事件的所有信息并尝试此操作.
// i suppose when you fire query you get an Object `EventDetails`
if (eventTypeID > 0)
{
ddlEventType.SelectedIndex = eventTypeID;
ddlEventType.SelectedValue = EventDetails.EventTypeID.ToString();
}
这应该有效!
我有一个主页,我在其中通过 <asp:Repeater.../>
控件创建了 div。现在,在 <div>
按钮上的点击事件上,我将页面重定向到我有 <asp:DropDown.../>
控件的注册表单。
在注册页面的 Page_Load
事件中,我从数据库填充下拉列表并设置 DataTextField
和 DataValueField
。
现在我将 EventTypeID
分配给 dropdown.DataValueField
,将 Name
分配给 dropdown.DataTextField
。我还检查了渲染时的下拉列表是否包含 value
字段中的 EventTypeID
..
这是代码:
protected void Page_Load(object sender, EventArgs e)
{
EventTypeLogic eventTypeLogic = new EventTypeLogic();
int eventTypeID = Convert.ToInt32(Request.QueryString["Id"]);
ddlEventType.DataSource = eventTypeLogic.populateEventTypeDDL();
ddlEventType.DataValueField = "EventTypeID";
ddlEventType.DataTextField = "Name";
ddlEventType.DataBind();
ddlEventType.Items.Insert(0, new ListItem("Select Event Type", "0"));
if (eventTypeID > 0)
{
ddlEventType.SelectedIndex = eventTypeID;
}
}
DropDown aspx 代码:
<asp:DropDownList ID="ddlEventType" runat="server" CssClass="span2 form-info" />
主页代码:
</p><h6><a class="btn btn-custom" href='<%# "HostEvent.aspx?ID=" + Eval("EventTypeID") %>' ><b>host event</b></a></h6>
问题:我希望下拉列表应该根据主页上的选择预先选择值。
更新:
protected void Page_Load(object sender, EventArgs e)
{
EventTypeLogic eventTypeLogic = new EventTypeLogic();
int eventTypeID = Convert.ToInt32(Request.QueryString["Id"]);
string name = eventTypeLogic.resolveToName(eventTypeID);
ddlEventType.DataSource = eventTypeLogic.populateEventTypeDDL();
ddlEventType.DataValueField = "EventTypeID";
ddlEventType.DataTextField = "Name";
ddlEventType.Items.Insert(0, new ListItem("Select Event Type", "0"));
//ddlEventType.DataBind();
ddlEventType.SelectedIndex = eventTypeID;
ddlEventType.DataBind();
}
如果您希望 EventName
应该显示为您的 Ddl
中的预选值,而不是仅仅使用 eventTypeId
触发查询并获取该事件的所有信息并尝试此操作.
// i suppose when you fire query you get an Object `EventDetails`
if (eventTypeID > 0)
{
ddlEventType.SelectedIndex = eventTypeID;
ddlEventType.SelectedValue = EventDetails.EventTypeID.ToString();
}
这应该有效!