function getData(rowObj,ID)//打开新窗口 { ChangeRowColor(rowObj); var getControl=window.showModalDialog("HepatitisCheckCardView_p.aspx",ID,"dialogWidth=800px;dialogHeight=300px"); } </script>
to working1997(haha) 看了,是vb的,有一点看不懂 Dim lblSN As Label lblSN = CType(e.Item.FindControl("lblStoreName"), Label) Dim strArguments As String strArguments = "'" & lblSN.Text & "'" 这个应该是从选中行中取值了 我把他转化成C#语句 Label4 = ((Label)e.Item.FindControl("lblStoreName")); string temp = Label4.Text; 但是得不到我要的值 to magiccoder(JUST SO SO) 我使用这个方法 e.Item.Cells[0].Text得到的值是最后一行的值,不能改变谢谢以上两位
是在DataGrid翻页时触发的。
DataGrid没有isSelected方法,webform中隐藏了winform中很多属性和方法to songhtao(三十年孤独)
明白了,是不是在属性中没有勾选分页的话就无法使用这个这个方法?多谢两位继续顶
如果不想添加模版列,可以通过导航按钮来获取行索引的。
2.to songhtao(三十年孤独):不是翻页的吧,翻页应该是PageIndexChanges。
而datagrid有一个属性:DataKeyField(建议楼主查查msdn吧)
后台的这些方法都不行的
private void button1_Click(object sender, EventArgs e)
{
if(myDataGrid.IsSelected(0))
{
///相关代码
}
else
{
///相关代码
}
}其次:
private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
是在服务器两次传递中,更改时发生
参考吧,应该可以实现你的要求.功能:双击DataGrid,弹出当前行的值
private void DataGrid1_ItemDataBound_1(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onclick","javascript:ChangeRowColor(this)");//单击当前行时
e.Item.Attributes.Add("ondblclick","javascript:getData(this,"+e.Item.Cells[0].Text+")");//e.Item.Cells[0].Text取当前行第一列的值(双击当前行时)
}
}客户端代码
<script language="javascript">
var oldRow="";
function ChangeRowColor(rowObj)//改变当前DataGrid中所选行的颜色
{
if(oldRow=="")
{
oldRow=rowObj;
oldRow.style.backgroundColor='white';
rowObj.style.backgroundColor='#FEE6A7';
}
if(oldRow!=rowObj)
{
oldRow.style.backgroundColor='white';
rowObj.style.backgroundColor='#FEE6A7';
oldRow=rowObj;
}
}
function getData(rowObj,ID)//打开新窗口
{
ChangeRowColor(rowObj);
var getControl=window.showModalDialog("HepatitisCheckCardView_p.aspx",ID,"dialogWidth=800px;dialogHeight=300px");
}
</script>
看了,是vb的,有一点看不懂
Dim lblSN As Label
lblSN = CType(e.Item.FindControl("lblStoreName"), Label)
Dim strArguments As String
strArguments = "'" & lblSN.Text & "'"
这个应该是从选中行中取值了
我把他转化成C#语句
Label4 = ((Label)e.Item.FindControl("lblStoreName"));
string temp = Label4.Text;
但是得不到我要的值
to magiccoder(JUST SO SO)
我使用这个方法
e.Item.Cells[0].Text得到的值是最后一行的值,不能改变谢谢以上两位
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onclick","javascript:ChangeRowColor(this)");//单击当前行时
e.Item.Attributes.Add("ondblclick","javascript:getData(this,e.Item.Cells[0].Text)");//e.Item.Cells[0].Text取当前行第一列的值(双击当前行时)
Label4.Text = e.Item.Cells[0].Text; }
}我需要在c#中得到这个变量的值,在label4中显示出来是测试用的
{
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onclick", "alert('您点击的是:\n\n第" + e.Item.ItemIndex.ToString() + "行')");
Label1.Text = e.Item.ItemIndex.ToString(); }
}我想是不是在我访问e.Item.ItemIndex.ToString();的时候已经是最后的了,那么我可以在e.Item.Attributes.Add里得到这一行的变量值吗?
我现在需要得到这一行的索引或者随便哪一个值