DataGrid项上事件的问题?(选行的效果)

因为想念才会寂寞 2003-10-20 07:00:43
如何这样做:
鼠标移动每个item上,它的背景变动,就是有种选行的感觉,但并不是onclick事件,而是onmouseover.
void cal_d_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
e.Item.Attributes.Add("onmouseover","javascript....");
}
这样行吗?不行有什么其他办法.多谢了.
...全文
63 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
谢谢各位,可惜本人分数太少~~~各位多多体谅....
guoyan19811021 2003-10-21
  • 打赏
  • 举报
回复
Dim i As Integer

Dim count As Integer = DgrdPower.Items.Count

For i = 0 To count - 1

DgrdPower.Items(i).Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#F0F5FF';this.style.color='Red'")
DgrdPower.Items(i).Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor;this.style.color='black'")
'DgrdPower.Items(i).Attributes.Add("onmouseover", "currentcolor=this.style.color;this.style.color='Red'")
'DgrdPower.Items(i).Attributes.Add("onmouseout", "currentcolor=this.style.color;this.style.color='black'")
Next

liq1979 2003-10-21
  • 打赏
  • 举报
回复
<%@ Page Language="VB" %><%@ import Namespace="System.Data.SqlClient" %><%@ import Namespace="System.Data" %><script runat="server"> Sub Page_Load(Sender As Object, E As EventArgs) BindGrid() End Sub Sub BindGrid() Dim myConnection As New SqlConnection(ConfigurationSettings.AppSettings("ColtAtAspAlliance")) Dim myDataAdpater As New SqlDataAdapter("Select Top 10 * from Colt_Products", myConnection) Dim myDataSet As DataSet Try myDataSet = New DataSet() '---------------------------------- ' Fill the DataSet for the DataBinding of the 2 DataGrid '---------------------------------- myDataAdpater.Fill(myDataSet) DataGrid1.DataSource = myDataSet DataGrid1.DataBind() DataGrid2.DataSource = myDataSet DataGrid2.DataBind() Catch SQLEx As SqlException : Response.Write(SQLEx.Message.ToString()) Catch Ex As Exception : Response.Write(Ex.Message.ToString()) End Try End Sub Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) If e.Item.ItemType = ListItemType.Item Or _ e.Item.ItemType = ListItemType.AlternatingItem Then '--------------------------------------------------- ' Add the OnMouseOver and OnMouseOut method to the Row of DataGrid '--------------------------------------------------- e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='Silver'") e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='white'") End If End Sub Sub DataGrid2_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) If e.Item.ItemType = ListItemType.Item Or _ e.Item.ItemType = ListItemType.AlternatingItem Then '--------------------------------------------------- ' Add the OnMouseOver and OnMouseOut method a Cell (Column) of DataGrid '--------------------------------------------------- e.Item.Cells(1).Attributes.Add("onmouseover", "this.style.backgroundColor='#DDEEFF'") e.Item.Cells(1).Attributes.Add("onmouseout", "this.style.backgroundColor='white'") '--------------------------------------------------- ' Change the Mouse Cursor of a particular Cell (Column) of DataGrid ' (Or you may do it for a whole Row of DataGrid :) '--------------------------------------------------- e.Item.Cells(3).Style("cursor") = "hand" '--------------------------------------------------- ' Add the OnClick Alert MessageBox to a particular Cell (Column) of DataGrid '--------------------------------------------------- e.Item.Cells(3).Attributes.Add("onclick", "alert('You click at ID: " & e.Item.Cells(0).Text & "!');") End If End Sub</script><html><head></head><body> <form runat="server"> <table> <tbody> <tr> <td> <b>1. Color change per Row:</b> <br /> <br /> <asp:DataGrid id="DataGrid1" runat="server" OnItemDataBound="DataGrid1_ItemDataBound" CellPadding="4" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CC9966" EnableViewState="False" AutoGenerateColumns="False"> <SelectedItemStyle font-bold="True" forecolor="#663399" backcolor="#FFCC66"></SelectedItemStyle> <ItemStyle forecolor="#330099" backcolor="White"></ItemStyle> <HeaderStyle font-bold="True" forecolor="#FFFFCC" backcolor="#990000"></HeaderStyle> <FooterStyle forecolor="#330099" backcolor="#FFFFCC"></FooterStyle> <Columns> <asp:BoundColumn DataField="ProductID" HeaderText="ID"></asp:BoundColumn> <asp:BoundColumn DataField="ProductName" HeaderText="Product Name"></asp:BoundColumn> <asp:BoundColumn DataField="QuantityPerUnit" HeaderText="Quantity Per Unit"></asp:BoundColumn> <asp:BoundColumn DataField="ReorderLevel" HeaderText="Reorder Level"></asp:BoundColumn> </Columns> <PagerStyle horizontalalign="Center" forecolor="#330099" backcolor="#FFFFCC"></PagerStyle> </asp:DataGrid> </td> </tr> <tr> <td> <p> <hr /> </p> <p> <br /> <b>2. Features: </b> </p> <p> <b>- Color changed per "column" - (2nd Column:  "ProductName") </b> </p> <p> <b>- "Little Hand Cursor & MessageBox onClick" - (4th Column: Reorder Level):</b> <br /> <br /> <asp:DataGrid id="DataGrid2" runat="server" OnItemDataBound="DataGrid2_ItemDataBound" CellPadding="4" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CC9966" EnableViewState="False" AutoGenerateColumns="False"> <SelectedItemStyle font-bold="True" forecolor="#663399" backcolor="#FFCC66"></SelectedItemStyle> <ItemStyle forecolor="#330099" backcolor="White"></ItemStyle> <HeaderStyle font-bold="True" forecolor="#FFFFCC" backcolor="#990000"></HeaderStyle> <FooterStyle forecolor="#330099" backcolor="#FFFFCC"></FooterStyle> <Columns> <asp:BoundColumn DataField="ProductID" HeaderText="ID"></asp:BoundColumn> <asp:BoundColumn DataField="ProductName" HeaderText="Product Name"></asp:BoundColumn> <asp:BoundColumn DataField="QuantityPerUnit" HeaderText="Quantity Per Unit"></asp:BoundColumn> <asp:BoundColumn DataField="ReorderLevel" HeaderText="Reorder Level"></asp:BoundColumn> </Columns> <PagerStyle horizontalalign="Center" forecolor="#330099" backcolor="#FFFFCC"></PagerStyle> </asp:DataGrid> </p> </td> </tr> </tbody> </table> <!-- Insert content here --> </form></body></html>
seesea125 2003-10-21
  • 打赏
  • 举报
回复
楼主的方法可以而且没有其它选择
windofcity 2003-10-21
  • 打赏
  • 举报
回复
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='';");

}
sjinli 2003-10-21
  • 打赏
  • 举报
回复
1)首先在你的DATAGRID里添加一个选择按钮,然后隐藏。
2)在你的datagrid的ItemDataBound里添加如下代码:

Dim itemType As ListItemType = e.Item.ItemType
If ((itemType = ListItemType.Pager) Or _
(itemType = ListItemType.Header) Or _
(itemType = ListItemType.Footer)) Then
Return
Else
Dim button As LinkButton = CType(e.Item.Cells(0).Controls(0), LinkButton)
e.Item.Attributes("onclick") = Page.GetPostBackClientHyperlink(button, "")
End If
试试看我感觉效果挺好的,还可以实现连接呢!!!
redebug 2003-10-20
  • 打赏
  • 举报
回复
可以的,问孟子E章,他的主页上就有这个功能!
  • 打赏
  • 举报
回复
不会吧!!~~~~~
有没有其他的方法.
513 2003-10-20
  • 打赏
  • 举报
回复
好像不行,DataGrid是服务器控件,他行为状态的改变需要提交到服务器处理

62,047

社区成员

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

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

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

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