注册 登录
编程论坛 ASP.NET技术论坛

一个Gridview的问题

刘小芳 发布于 2007-07-09 15:46, 1105 次点击
就是gridview中,就比如有个字段里面内容有点多,我不想他直接显示出来,就在那一快应该显示他数据的地方变成一个按钮或什么的 ,一点他就另外谈出一个对话框或页面显示其中的内容
怎么搞也 ,本来我想用GridView的SelectedIndexChanging来把他显示在文本中,但其他事情已经把这功能用了,再加在里面太烦琐了,各位有什么办法来实现我说的功能吗
13 回复
#2
川流不息2007-07-09 15:52
private void dgShow_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//首先得到裡面的值,添加屬性可以使鼠標懸停於上面時顯示全部的值
e.Item.Cells[10].Attributes.Add("title",e.Item.Cells[10].Text);
//如果文本長度大於8,則只取前8個字符,後面用......來代替
if(e.Item.Cells[10].Text.Length>8)
{
e.Item.Cells[10].Text=e.Item.Cells[10].Text.Substring(0,8)+"... ...";
}
}

用這個試試。
#3
CrazyWeed09072007-07-09 15:53

用模板列,加个按狃,点击的时候再做一次查询

#4
刘小芳2007-07-09 16:24
以下是引用川流不息在2007-7-9 15:52:57的发言:
private void dgShow_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//首先得到裡面的值,添加屬性可以使鼠標懸停於上面時顯示全部的值
e.Item.Cells[10].Attributes.Add("title",e.Item.Cells[10].Text);
//如果文本長度大於8,則只取前8個字符,後面用......來代替
if(e.Item.Cells[10].Text.Length>8)
{
e.Item.Cells[10].Text=e.Item.Cells[10].Text.Substring(0,8)+"... ...";
}
}

用這個試試。

我怎么没在Gridview的事件中找到这个事件啊

#5
刘小芳2007-07-09 16:25
回复:(CrazyWeed0907)用模板列,加个按狃,点击的时候...
请问写查询的时候怎么获取这一行呢
#6
川流不息2007-07-09 17:15
GridView1_RowDataBound

這個事件你試試。
#7
sean882007-07-09 17:21
VS 2005里的GridView用DataBound事件

private void dgShow_DataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
\\coding
}
#8
刘小芳2007-07-09 17:54
已经成功了,难怪前几次都不成功,用GridView1_RowDataBound时候还要加入System.Web.UI.WebControls.GridViewRowEventArgs ,默认的只是EventArgs,丢人呢,嘿嘿,谢谢楼上几位,特别感谢川哥
#9
刘小芳2007-07-27 08:08
出问题呢,川哥,用你那个方法,我用选择事件把他显示在下面另外文本框中却依然显示的是8个字加``````,怎么才能让他把所有字都显示出来呢
#10
jyoseyi2007-07-27 09:22
根据点击,获得此行主件,把这个主件传到另外个页面,另外个页面根据这个主件,查询出这条记录中你想要的字段,在显示出来,完成
#11
刘小芳2007-07-28 08:16
具体咋操作哦,都没看懂哎
#12
606liutong2007-07-28 09:07

这样做
<asp:TemplateField HeaderText="查看信息">
<itemtemplate>
<A href='CaseData.aspx?id=<%#Eval("ID")%>'><img src="../Common/Image/i_view.gif" border="0" /></A>
</itemtemplate>

在CaseData.aspx页面中
string id;
if (Request.QueryString["id"] != null)
{
id = Request.QueryString["id"].ToString();
SqlCommand cmd = new SqlCommand("select News from PatientMsg where ID='" +id+ "'", con);
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
if (this.News.Text != null)
{
this.News.Text = reader["News"].ToString();
}
}
不知道这样做你满不满意
#13
606liutong2007-07-28 09:11
也就是在显示你的那个字段的地方放上个“放大镜” 字段名字我设置成了 “详细信息” 你把它改成你的数据字段

Image 是个图片按钮(为了美观)弹出另一个窗口 在另一个重新绑定你想要的东东
#14
刘小芳2007-07-29 17:36
以下是引用川流不息在2007-7-9 15:52:57的发言:
private void dgShow_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//首先得到裡面的值,添加屬性可以使鼠標懸停於上面時顯示全部的值
e.Item.Cells[10].Attributes.Add("title",e.Item.Cells[10].Text);
//如果文本長度大於8,則只取前8個字符,後面用......來代替
if(e.Item.Cells[10].Text.Length>8)
{
e.Item.Cells[10].Text=e.Item.Cells[10].Text.Substring(0,8)+"... ...";
}
}

用這個試試。

我用了这个方法在Gridview中,最多可以显示8个文字,但是我用选择事件把其中一个字段显示在另外文本框中,他在文本框中依然只显示8个字加“... ...”;我是想文本框显示其字段的所有文字

1