datagrid点击单元格选中一行问题。急!急!急!急!急!急!急!急!急!急!急!急!

etuchang 2004-09-02 05:08:40
发现 http://dev.csdn.net/develop/article/29/29058.shtm#Comment 这一段不行。
不知为何。
如何改变一行的颜色的同时,能改变恢复其他行的颜色。还要取得e.items.itemindex.
...全文
243 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
etuchang 2004-09-03
  • 打赏
  • 举报
回复
to xulovewei(旭旭)
要点击事件
xulovewei 2004-09-03
  • 打赏
  • 举报
回复
2.在ItemDataBound事 件中

c#

if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='#99cc00';this.style.color='buttontext';this.style.cursor='default';");
e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='';this.style.color='';");
.....
}
etuchang 2004-09-03
  • 打赏
  • 举报
回复
可按钮列必须放在页面上才行,隐藏不行啊。
有没有其他方法阿
rickjelly2004 2004-09-03
  • 打赏
  • 举报
回复
你加一个隐藏的控件记录它的行号
If e.Item.ItemType = ListItemType.Item Or _
e.Item.ItemType = ListItemType.AlternatingItem Or _
e.Item.ItemType = ListItemType.SelectedItem Then
e.Item.Attributes.Add("onclick", "javascript:return doublecl('" & e.Item.ItemIndex + 1 & "');")

If TextBox2.Text = CStr(e.Item.ItemIndex + 1) Then
e.Item.BackColor = Color.Red
End If
End If



function doublecl(e)
{

if (confirm("are you sure delete " + e + "?"))
{ document.getElementById("TextBox2").value=e
document.Form1.submit()

}

}
Eddie005 2004-09-02
  • 打赏
  • 举报
回复
加一个按钮列,让这一行跟这个按钮列触发同样的事件
下面的代码肯定是可行的,不过需要根据按钮列的位置调整一下,从ie查看页面源代码就知道了
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemIndex>-1)
{
string click = "java"+"script:__doPostBack('DataGrid1$_ctl" + (e.Item.ItemIndex+2).ToString() + "$_ctl0','')";
e.Item.Attributes.Add("onclick",click);
}
}
void DataGrid1_ItemCommand(...)
{
if(e.CommandName =="...")
{
int index = e.Item.ItemIndex;
e.Item.BackColor = System.Drawing.Color.....;
//显然,其他行的背景色也可以改了
}
}
Eddie005 2004-09-02
  • 打赏
  • 举报
回复
加一个按钮列,让这一行跟这个按钮列触发同样的事件
下面的代码肯定是可行的,不过需要根据按钮列的位置调整一下,从ie查看页面源代码就知道了
private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
{
if(e.Item.ItemIndex>-1)
{
string click = "java"+"script:__doPostBack('DataGrid1$_ctl" + (e.Item.ItemIndex+2).ToString() + "$_ctl0','')";
e.Item.Attributes.Add("onclick",click);
}
}
rickjelly2004 2004-09-02
  • 打赏
  • 举报
回复
<script language=javascript>

function CG(obj)
{
var Curr_TR=document.all.tags("tr");
for(var i=1;i<Curr_TR.length;i++)
{
Curr_TR[i].Style.backgroundColor="white";
}
obj.style.backgroundColor="yellow";
}
</script>

对与背景没颜色的到是好的,就怕有颜色,还有有《TR》的就难了
etuchang 2004-09-02
  • 打赏
  • 举报
回复
高手们呢?
rickjelly2004 2004-09-02
  • 打赏
  • 举报
回复
前台的确实有点难
etuchang 2004-09-02
  • 打赏
  • 举报
回复
是点击空白处阿
rickjelly2004 2004-09-02
  • 打赏
  • 举报
回复
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.ItemType == ListItemType.SelectedItem) )
{
e.Item.Attributes.Add ("onclick", "javascript:return confirm('确定删除" + e.Item.Cells[1].Text + "?');");
}
}


rickjelly2004 2004-09-02
  • 打赏
  • 举报
回复
你在DATAGRID中放一个摸板,里面放一个LINKBUTTON,把他的COMMANDNAME设置成SELECT
不过你要把SELECTITEM的背景设置成你要的颜色
ITEMCOMMAND中就是
SELECT CASE E。COMMANDNAME
CASE “SELECT”
DATAGRID。SELECTINDEX=E。ITEM。ITMEINDEX
CALL BIND()
就好了

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧