我用griview绑定了新闻的id,title,content,等字段。在griview中当我点击"编辑时"需要导航到B页面(已经实现),用session获取griview的主键,在B页面上写sql语句"select title,content from news where id='" +Session["index"]+ "'",难解决的是:在B页面把得到的title赋给textbox,content赋给FCKEditor。望高手指教!
调试欢乐多
不就textbox.Text = title吗?
private void bind()
{
string sql = "select title,content from news where id='" +Session["index"]+ "'";
SqlDataReader reader=DBHelper .reader (sql);
if (reader.HasRows && reader.Read())
{
FCKeditor1.Value = reader["content"].ToString();
TextBox1.Text = reader["title"].ToString();
}
确定reader["title"].ToString()是有值的吗?
即光标移到这句,按F9
1切定你的session中是有值的
字符型->Session["index"].ToString().Trim();
整形->Convert.ToInt32(Session["index"].ToString().Trim());
b.aspx?id=A页面去掉的id
得到griview中的主键并赋值给Session:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridView1.EditIndex = e.RowIndex;
int index = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
Session["index"] = index;
}
DBHelper中的方法:
public static SqlDataReader reader(string sql)
{
SqlConnection con = new SqlConnection(ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}
B页面:private void bind()
{
string sql = "select title,content from news where id='" +Session["index"]+ "'";
SqlDataReader reader=DBHelper .reader (sql);
if (reader.HasRows && reader.Read())
{
FCKeditor1.Value = reader["content"].ToString();
TextBox1.Text = reader["title"].ToString();
} //FCKeditor1.DataBind();
}
检查用session获取griview的主键定义的Session["XXX"]里面的XXX是不是等于index
看看是不是长时间没操作导致session丢失,修改webconfig延长session时效
不要用seeion吧。用B.aspx?id={0}
datatable dt=new datatable()
da.fill(dt)
if(dt.rows.count>0)
{
FCKeditor1.Value = dt.rows[0]["content"].tostring();
TextBox1.Text = dt.rows[0]["title"].tostring();}
在a页面GridView1_RowEditing写下
a.aspx?id={"id"};这样不行吧!见笑了!!