从GetAllMembers()填充的下拉框中获取价值

时间:2014-02-26 20:55:27

标签: c# asp.net

对于填充了Membership.GetAllUsers();

的下拉框,我有点困难。

我有以下代码,成功地将所有用户放入下拉列表

UsrList.DataSource = Membership.GetAllUsers(); //get all users
UsrList.DataBind(); //bind

然后我有一个按钮,应该将当前在下拉列表中的用户名存储到一个字符串中,但是它总是将第一个值存储在下拉列表中。

string usr = UsrList.SelectedItem.Value;
Label3.Text = usr;

我确信我的遗失非常简单,任何帮助都会受到赞赏! :)

3 个答案:

答案 0 :(得分:1)

为了使用selectedItem.Value,我认为你需要定义DataTextField和DataTextValue

UsrList.DataTextField = "<Property to display>";
UsrList.DataValueField = "<Property to use as Value>";

答案 1 :(得分:1)

除了Pedro上面的直接答案,您可能还想略微修改您的列表项。以下是将“默认”项目添加为列表中的顶部项目的代码:

protected void UsrList_DataBound(object sender,EventArgs e)   {       UsrList.Items.Insert(0,new ListItem(“”,“0”));   }

并且正面添加到控件: OnDataBound = “UsrList_DataBound”

您也可以随时修改上述方法,从列表中选择特定值。

答案 2 :(得分:0)

可能是您的第一段代码在页面生命周期中的第二段之前执行。

确保在DataSource中设置DataBind()Page_Load,并在UsrList.SelectedItem.Value

等UI事件中检索Button_OnClick

ASP.NET页面生命周期大致是

  • 开始申请
    • Page_Init
    • 的Page_Load
    • 从请求中加载已发布的数据
    • 流程事件
    • 创建ViewState
    • 渲染
  • 结束请求

我希望这会有所帮助。