DropDownList asp.net中所选项目的文本
在页面加载中,我填充下拉列表,如下所示:
protected void Page_Load(object sender, EventArgs e) { string buildingTypeSoldier = "soldier"; var soldierBuilding = from b in dc.Buildings where b.buildingtype == buildingTypeSoldier select b.buildingname; ddlSoldierBuildings.DataSource =soldierBuilding; ddlSoldierBuildings.DataBind(); }
但是当我尝试将同一页面上的标签文本设置为selectetitem.text时,我只获得列表中的第一项,而不是我选择的项目。 我尝试使用这样的按钮设置文本:
protected void btnBuySoldierBuilding_Click(object sender, EventArgs e) { lblTestlabel.Text = ddlSoldierBuildings.SelectedItem.Text; }
下拉列表包含从我的数据库中获取的树项目,营房,射手范围和稳定。 单击按钮时页面加载是否覆盖我的选择? 我怎么解决这个问题?
那是因为您的Page_Load
在事件处理程序之前触发。
将Page_Load
初始化逻辑包装在if块中,通过检查Page.IsPostback
属性来检查页面是否正在处理回发。 如果它是回发,那么您的初始化逻辑将不会触发并重置您的下拉列表。
protected void Page_Load(object sender, EventArgs e) { if (!IsPostback){ string buildingTypeSoldier = "soldier"; var soldierBuilding = from b in dc.Buildings where b.buildingtype == buildingTypeSoldier select b.buildingname; ddlSoldierBuildings.DataSource =soldierBuilding; ddlSoldierBuildings.DataBind(); } }
将上面的绑定代码包装在if (!Page.IsPostBack) { }
块中。 否则你将失去控制状态。