如何单击datagrid取得一行某字段的值 我想把这个值赋给一个变量,应该是在datagrid1_ItemDataBound事件中写吧?还有,怎么样才能让datagrid在数据绑定的情况下,规范的让某列只显示两个字符?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在datagrid的ItemCommand事件中。当点击这一行的按钮时。记得按钮的CommandName要设置,例如设置为aif(e.CommnandName=="a"){ string str = ((Lable)e.Item.FindControl("id")).Text}只显示两个字符:前代码绑定例如是个lablelbl.text=<%# SubString(((DataRowView)Container.DataItem)["title"])%>//title为数据库表的列名 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemType==ListItemType.Item|| e.Item.ItemType==ListItemType.AlternatingItem) { HyperLink hp =(HyperLink ) e.Item.Cells[2].Controls[0]; if( hp != null) { e.Item.Cells[2].ToolTip=hp.Text; hp.Text=(hp.Text.Length>8?hp.Text.Substring(0,8):hp.Text); } } } 得到某一行的值1:在DataGrid的模版列中有一个 LinkButton(比如这个控件的text里的值为"查看") 在其ItemCommand事件上 string Type = ((LinkButton)e.CommandSource).Text; if(Type == "查看") { 执行代码 }2:如果只是想得到DataGrid的普通项值 那么在绑定DataGrid以后,用如下方法: for(int i = 0; i<this.MyDataGrid.Items.Count; i++) { if(this.MyDataGrid.Items[i].Cells[5].Text == "新信息") { this.MyDataGrid.Items[i].BackColor = Color.Red; } } 其中Cells[5]表示DataGrid你要查找的列所在的位置, "新信息"表示该列的值 或者,如果你想直接得到DataGrid某一列的值,可以在ItemCommand事件上通过((LinkButton)e.Item.Cells[0].Controls[0]).Text)----表示DataGrid当前的触发行的第一个列的第一个控件内的值得到.另外你说的,在绑定以后如何想显示你所需求的字符数的方法,就和平时你截取字符串的做法几乎是一样的,如果你上面的看懂了,这个问题就很容易解决了 还有一种方法结合一个CHECKBOXfor(int i=0;i<datagird1.items.count;i++){ CheckBox aa= (CheckBox)datagrid1.items[i].cells[0].findcontrol("CheckBox1"); if(aa.Checked) { int id=int.parse(datagrid1.items[i].cells[1].text.ToString()); }} SqlDataReader资源释放问题。 在datalist中怎么得到复选框当前选中的值 傻子有难了,大家帮帮我啊,这段代码在IE上可以用,但是火狐上不行,大家帮我看看该怎么改啊 一个简单问题 数字转换 C#和VB能共存吗? sqldatareader对象的问题 WebConfig 配置问题。 没分了,请问在asp.net中的TreeView控件为何没有Tag属性? 一个很弱的问题!我把别人写的ASP.NET程序拿到我的机器上,提示:“位于http://localhost的目录不存在”,怎么回事? 高分求解?????? datagrid问题
当点击这一行的按钮时。记得按钮的CommandName要设置,例如设置为a
if(e.CommnandName=="a")
{
string str = ((Lable)e.Item.FindControl("id")).Text
}只显示两个字符:
前代码绑定
例如是个lable
lbl.text=<%# SubString(((DataRowView)Container.DataItem)["title"])%>//title为数据库表的列名
{
if(e.Item.ItemType==ListItemType.Item|| e.Item.ItemType==ListItemType.AlternatingItem)
{
HyperLink hp =(HyperLink ) e.Item.Cells[2].Controls[0];
if( hp != null)
{
e.Item.Cells[2].ToolTip=hp.Text;
hp.Text=(hp.Text.Length>8?hp.Text.Substring(0,8):hp.Text);
}
}
}
1:在DataGrid的模版列中有一个 LinkButton(比如这个控件的text里的值为"查看")
在其ItemCommand事件上
string Type = ((LinkButton)e.CommandSource).Text;
if(Type == "查看")
{
执行代码
}
2:如果只是想得到DataGrid的普通项值 那么在绑定DataGrid以后,用如下方法:
for(int i = 0; i<this.MyDataGrid.Items.Count; i++)
{
if(this.MyDataGrid.Items[i].Cells[5].Text == "新信息")
{
this.MyDataGrid.Items[i].BackColor = Color.Red;
}
}
其中Cells[5]表示DataGrid你要查找的列所在的位置, "新信息"表示该列的值
或者,如果你想直接得到DataGrid某一列的值,可以在ItemCommand事件上通过((LinkButton)e.Item.Cells[0].Controls[0]).Text)----表示DataGrid当前的触发行的第一个列的第一个控件内的值得到.另外你说的,在绑定以后如何想显示你所需求的字符数的方法,就和平时你截取字符串的做法几乎是一样的,如果你上面的看懂了,这个问题就很容易解决了
for(int i=0;i<datagird1.items.count;i++)
{
CheckBox aa= (CheckBox)datagrid1.items[i].cells[0].findcontrol("CheckBox1");
if(aa.Checked)
{
int id=int.parse(datagrid1.items[i].cells[1].text.ToString());
}
}