请教一个datagrid中取值的问题,对于你们可能很简单,但是能进来给点建议吗?
我的datagrid绑定了数据,其中一个列是模板来的,上面有个超链接,只要点击上面的链接就可以打开一个页面,上面可以自动显示原来页面模板上面相应的绑定内容,好像ID,名称阿,只要点击链接就显示这一横的内容,请问怎么做到呢?这里我想说清楚的是把值传到另外一个页面显示而不是在这个页面的datagrid上面显示的,是不是要用到session呢,最好有代码,谢谢了 问题点数:0、回复次数:6Top
1 楼DJfeng(丹仔)回复于 2006-05-02 00:44:27 得分 0
先为DataGrid添加一个选择列,然后添加DataGrid_ItemCommand事件,代码如下:
private void DataGrid_ItemCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
int i = Convert.ToInt32(this.DataGrid1.DataKeys[e.Item.ItemIndex]);
con.open()
SqlCommand dr=new SqlCommand("select * from 表 ",con);
SqlDataReader dd = dr.ExecuteReader();
dd.Read();
Session ["name"]=dd["Name"];
Session ["idD"]=dd[ID].ToString();
........
Response.Redirect("你想去的页面");
}
最后在你想去的页面直接用这些Session.Top
2 楼dino815613(浪客)回复于 2006-05-02 01:00:17 得分 0
你好,DJfeng(丹仔),谢谢你这么晚还为我解答,我有个疑问,为什么要写在DataGrid_ItemCommand事件里面呢?还有一定要这样写吗
SqlCommand dr=new SqlCommand("select * from 表 ",con);
SqlDataReader dd = dr.ExecuteReader();
dd.Read();
Session ["name"]=dd["Name"];
Session ["idD"]=dd[ID].ToString();
我这样写行不行,在datagrid加载的时候帮定数据库,然后取当前行第一列的值
Session ["idD"]=dt.Rows[dataGrid1.CurrentRowIndex][0].ToString();
Top
3 楼DJfeng(丹仔)回复于 2006-05-02 02:24:03 得分 0
比如说你点击了DataGrid中的那行选择列绑定的字段(id),`就触发了DataGrid_ItemCommand事件
接着你就可以从数据库中读你想要的字段
int i = Convert.ToInt32(this.DataGrid1.DataKeys[e.Item.ItemIndex]);
SqlCommand dr=new SqlCommand("select * from Topic where ID=" +i,con);
这样你可以随便取哪列的值~
Top
4 楼dino815613(浪客)回复于 2006-05-02 13:05:46 得分 0
to DJfeng(丹仔),非常感谢你,问题我解决了,谢谢Top
5 楼dino815613(浪客)回复于 2006-05-02 13:45:25 得分 0
怎么现在不能出现我希望的数据的?Top
6 楼dino815613(浪客)回复于 2006-05-02 13:49:30 得分 0
private void dataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string str="select ID,Name,BeginTime,ZiJin,State from XiangMu order by ID ASC";
SqlCommand comm=new SqlCommand(str,conn);
try
{
conn.Open();
SqlDataReader reader=comm.ExecuteReader();
reader.Read();
Session.Add("ID","");
Session.Add("Name","");
Session ["ID"]=reader["ID"];
Session ["Name"]=reader["Name"];
}
catch(Exception ee)
{
Response.Write("<script languge=javascript> alert('"+ee.Message+"');</script>");
}
finally
{
conn.Close();
}
在另外一个页面上面
textID.Text=Session["ID"].ToString();
textName.Text=Session["Name"].ToString();
怎么就不能看到我选中那行的数据的呢?
(有datagrid的那个页面我有个模板列,上面有个超链接“查看”,点击后就出现以上那个页面显示ID,和Name了Top




