首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

为什么DataValueField返回的总是第一个值,该怎么处理

2012-02-04 
为什么DataValueField返回的总是第一个值private Blog _blprotected void Page_Load(object sender, Even

为什么DataValueField返回的总是第一个值
private Blog _bl;
  protected void Page_Load(object sender, EventArgs e)
  {
  ClassID.DataSource = Business.GetAllClass().Tables[0].DefaultView;
  ClassID.DataTextField = "ClassName";
  ClassID.DataValueField = "ClassID";
  ClassID.DataBind();

  }
  protected void AddRow(object sender, EventArgs e)
  {
  _bl = new Blog();
  _bl.ClassID = ClassID.SelectedValue;
  _bl.BlogTitle = BlogTitle.Value;
  _bl.BlogContent = BlogContent.Value;
  Business.AddBlog(_bl);
  Response.Redirect("default.aspx");
  }

表的情况如下
classid classname
1 class1
2 class2
3 class3
4 class4

返回的值总是1 ,我要的效果是比如选 class3 返回 3


[解决办法]
放到ispostback里面
[解决办法]
protected void Page_Load(object sender, EventArgs e) 
{ if (IsPostback == false) {
ClassID.DataSource = Business.GetAllClass().Tables[0].DefaultView; 
ClassID.DataTextField = "ClassName"; 
ClassID.DataValueField = "ClassID"; 
ClassID.DataBind(); 
}



[解决办法]
protected void Page_Load(object sender, EventArgs e) 

if(!Page.Ispostback)
{
ClassID.DataSource = Business.GetAllClass().Tables[0].DefaultView; 
ClassID.DataTextField = "ClassName"; 
ClassID.DataValueField = "ClassID"; 
ClassID.DataBind(); 
}

加上```就行了``
因为你每次页面加载都会绑定``你获取的值只有是1喽``

热点排行