代码奉上:(下面代码有注释那里写有问题的````)
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
this.wf_selYangYe();
string arg_msg = "";
this.wf_selContent(ref arg_msg);
}
}private bool wf_selYangYe()
{
bool rslt = true;
string arg_msg = ""; string sql = "";
DataSet ds = new DataSet();
try
{
sql = "select * from YangYe";
ds = cs_con.Select(sql, null, ref arg_msg);
DataView dv = new DataView(ds.Tables[0]); foreach (DataRowView Row in dv)
{
TreeNode node = new TreeNode();
node.Text = Row["Name"].ToString().Trim();
node.Value = Row["YangYeID"].ToString().Trim(); this.tv_hangye.Nodes.Add(node);
node.Expanded = false;
}
tv_hangye.NodeStyle.Font.Underline = false; }
catch (Exception ex_wf_seltRight)
{
rslt = false;
arg_msg = ex_wf_seltRight.Message;
}
return rslt;
}private bool wf_selContent(ref string arg_msg)
{
bool rslt = true;
string sql = "";
DataTable dt = new DataTable();
try
{
if (Session["YangYeID"]==null)
{
for(int i=0;i<this.dv_yangye.Rows.Count;i++)
{
//调试到这个括号这里就直接走到return去了,也不报错,也不进这个循环
//这是为什么呀?我只是想当Session里没值的时候,让DetailView里的行显示为空。
//请高手指点!!!!(急~~) ((TextBox)this.dv_yangye.Rows[i].FindControl("tb_code")).Text = "";
((TextBox)this.dv_yangye.Rows[i].FindControl("tb_name")).Text = "";
}
}
else
{
sql = "select * from YangYe where YangYeID=" + Convert.ToInt32(Session["YangYeID"].ToString());
dt = cs_con.Select(sql, null, ref arg_msg).Tables[0];
if (dt.Rows.Count > 0)
{
this.dv_yangye.DataSource = dt;
this.dv_yangye.DataBind();
goto ext_wf_selContent;
}
else
{
rslt = false;
goto ext_wf_selContent;
}
}
}
catch (Exception ex_wf_selContent)
{
rslt = false;
arg_msg = ex_wf_selContent.Message;
Response.Write(arg_msg);
}
ext_wf_selContent:
return rslt;
}
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
this.wf_selYangYe();
string arg_msg = "";
this.wf_selContent(ref arg_msg);
}
}private bool wf_selYangYe()
{
bool rslt = true;
string arg_msg = ""; string sql = "";
DataSet ds = new DataSet();
try
{
sql = "select * from YangYe";
ds = cs_con.Select(sql, null, ref arg_msg);
DataView dv = new DataView(ds.Tables[0]); foreach (DataRowView Row in dv)
{
TreeNode node = new TreeNode();
node.Text = Row["Name"].ToString().Trim();
node.Value = Row["YangYeID"].ToString().Trim(); this.tv_hangye.Nodes.Add(node);
node.Expanded = false;
}
tv_hangye.NodeStyle.Font.Underline = false; }
catch (Exception ex_wf_seltRight)
{
rslt = false;
arg_msg = ex_wf_seltRight.Message;
}
return rslt;
}private bool wf_selContent(ref string arg_msg)
{
bool rslt = true;
string sql = "";
DataTable dt = new DataTable();
try
{
if (Session["YangYeID"]==null)
{
for(int i=0;i<this.dv_yangye.Rows.Count;i++)
{
//调试到这个括号这里就直接走到return去了,也不报错,也不进这个循环
//这是为什么呀?我只是想当Session里没值的时候,让DetailView里的行显示为空。
//请高手指点!!!!(急~~) ((TextBox)this.dv_yangye.Rows[i].FindControl("tb_code")).Text = "";
((TextBox)this.dv_yangye.Rows[i].FindControl("tb_name")).Text = "";
}
}
else
{
sql = "select * from YangYe where YangYeID=" + Convert.ToInt32(Session["YangYeID"].ToString());
dt = cs_con.Select(sql, null, ref arg_msg).Tables[0];
if (dt.Rows.Count > 0)
{
this.dv_yangye.DataSource = dt;
this.dv_yangye.DataBind();
goto ext_wf_selContent;
}
else
{
rslt = false;
goto ext_wf_selContent;
}
}
}
catch (Exception ex_wf_selContent)
{
rslt = false;
arg_msg = ex_wf_selContent.Message;
Response.Write(arg_msg);
}
ext_wf_selContent:
return rslt;
}
去掉this看看
{
for(int i=0;i <this.dv_yangye.Rows.Count;i++)
{
//这里的dv_yangye 之前已经帮定了? ((TextBox)this.dv_yangye.Rows[i].FindControl("tb_code")).Text = "";
((TextBox)this.dv_yangye.Rows[i].FindControl("tb_name")).Text = "";
}
}
else
{
sql = "select * from YangYe where YangYeID=" + Convert.ToInt32(Session["YangYeID"].ToString());
dt = cs_con.Select(sql, null, ref arg_msg).Tables[0];
if (dt.Rows.Count > 0)
{
this.dv_yangye.DataSource = dt;
this.dv_yangye.DataBind();
goto ext_wf_selContent;
}
else
{
rslt = false;
goto ext_wf_selContent;
}
}
那到底该怎么完成我想要的效果哇?
我改了一下,但是还是有错
if (Session["YangYeID"]==null)
{
if(this.dv_yangye.Rows.Count==0)
{
//这里应该怎么给里面的行赋值啊?
}
}
else
{
sql = "select * from YangYe where YangYeID=" + Convert.ToInt32(Session["YangYeID"].ToString());
dt = cs_con.Select(sql, null, ref arg_msg).Tables[0];
if (dt.Rows.Count > 0)
{
this.dv_yangye.DataSource = dt;
this.dv_yangye.DataBind(); 这里绑定 dv_yangye 的 假如这种情况 if (Session["YangYeID"]==null) 成立,而且,你也是第一次打开页面那 dv_yangye 当然无任何行,既然无任何行,其中的textbox又怎么能找得到呢?
http://topic.csdn.net/u/20091128/11/ea8b0fc5-3d2b-463a-99df-497d0ec9754a.html