请问为什么没有办法取出DropDownList1.SelectedValue的值?
标记:
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"
Width="73px" />
代码:
public partial class Default2 : System.Web.UI.Page
{
SqlConnection sqlCn;
SqlCommand sqlCmd;
protected void Page_Load(object sender, EventArgs e)
{
DropDownList1.AutoPostBack = false;
sqlCn = new SqlConnection("server=.;database=votes;uid=sa;pwd=");
sqlCn.Open(); SqlDataAdapter sqlDa = new SqlDataAdapter("select *From voteItem", sqlCn);
DataSet ds = new DataSet();
sqlDa.Fill(ds); DropDownList1.DataTextField = "voteItem";
DropDownList1.DataValueField = "voteID";
DropDownList1.DataSource = ds;
DropDownList1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
Button1.Text = DropDownList1.SelectedValue;
}
}
标记:
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"
Width="73px" />
代码:
public partial class Default2 : System.Web.UI.Page
{
SqlConnection sqlCn;
SqlCommand sqlCmd;
protected void Page_Load(object sender, EventArgs e)
{
DropDownList1.AutoPostBack = false;
sqlCn = new SqlConnection("server=.;database=votes;uid=sa;pwd=");
sqlCn.Open(); SqlDataAdapter sqlDa = new SqlDataAdapter("select *From voteItem", sqlCn);
DataSet ds = new DataSet();
sqlDa.Fill(ds); DropDownList1.DataTextField = "voteItem";
DropDownList1.DataValueField = "voteID";
DropDownList1.DataSource = ds;
DropDownList1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
Button1.Text = DropDownList1.SelectedValue;
}
}
解决方案 »
- 'System.ICloneable' is inaccessible due to its protection level
- 怎么跟一个全局变量动态赋值.
- 提个问题,csdn的“回复已成功,3秒钟后将自动跳转到帖子页面”这一块是用什么做的?
- 提交后字体变大!
- 在vs2005asp.net中如何调用自定义函数??
- 关于从数据库提取函数ubb问题
- 求选了所有课程的sql语句
- 如何实现:订单页面
- 求解:Regex.Replace方法正则表达式替换img标签src值!!!
- 我是菜鸟,B/S编程一点也不懂,现在用ASP.NET做WEB开发,请大虾们指点需掌握哪方面的知识,ASP.NET看哪些书最权威、最易上手?
- GridView加TemplateField列
- asp.net单点登录
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack)
{
DropDownList1.AutoPostBack = false;
sqlCn = new SqlConnection("server=.;database=votes;uid=sa;pwd=");
sqlCn.Open(); SqlDataAdapter sqlDa = new SqlDataAdapter("select *From voteItem", sqlCn);
DataSet ds = new DataSet();
sqlDa.Fill(ds); DropDownList1.DataTextField = "voteItem";
DropDownList1.DataValueField = "voteID";
DropDownList1.DataSource = ds;
DropDownList1.DataBind();
}
}
这句话*后面应该有空格啊
SqlDataAdapter sqlDa = new SqlDataAdapter("select *From voteItem", sqlCn);
DataSet ds = new DataSet();
sqlDa.Fill(ds); DropDownList1.DataTextField = "voteItem";
DropDownList1.DataValueField = "voteID";
DropDownList1.DataSource = ds;
DropDownList1.DataBind();
}
解决方法就是要像shenzhiwen所说的一样,用IsPostback判断把回发服务器前后的处理分离开。
不只是DDL,所有其它的ASP.NET服务器控件都是一样,这是一个比较容易犯的错误。像这类问题只要了解一下ASP.NET的页面生命周期就清楚了
这句也有问题,AutoPostBack改成true,不然选项改变后不postback,就不触发SelectedIndexChanged事件,还是捉不到选中的项。
另外在取SelectedValue之前最好先判断一下if (xxx.selectedIndex != -1)