日期:2014-05-18  浏览次数:20829 次

变量调用实现的问题
请看我的.aspx代码
protected void Page_Load(object sender, EventArgs e)
  {
  //省略
  string strid = ""+ dr["classid"].ToString() +"";
  //省略
  }

public string Class()
  {
  //省略
while (dr.Read())
  {
  if (dr["classid"].ToString() == "{strid}")
  {
  strBody += "<option value=" + dr["classid"] + " selected='selected'>" + dr["classname"] + "</option>";
  }
  else {
  strBody += "<option value=" + dr["classid"] + ">" + dr["classname"] + "</option>";
  }
  }
//省略
  }

我的意思是,当classid和当前的classid是一样的话,就用上面
strBody += "<option value=" + dr["classid"] + " selected='selected'>" + dr["classname"] + "</option>";
这句话,就是处于被选中状态,请问我上面的if (dr["classid"].ToString() == "+strid+"),正确的写法是?谢谢

------解决方案--------------------
if (dr["classid"].ToString() == strid)
------解决方案--------------------
if(dr["classid"].ToString().Equals(strid))
{
}
OK?
------解决方案--------------------
不要在Page_Load方法中声明strid,这样它的可访问域就仅限于该方法内。在页面class一级来声明,然后在Page_Load方法中对其赋值。
C# code

public partial class...
{
  string strid = "";
  protected void Page_Load(object sender, EventArgs e)
  {
    strid = dr["classid"].ToString();
  }
}