如何在asp.net中的DataViewGrid行上创建一个以行索引为参数的onclick处理程序
本文关键字:索引 参数 程序 处理 onclick 一个以 asp net 中的 DataViewGrid 创建 | 更新日期: 2023-09-27 17:57:45
我有一个ASP.net数据视图网格,我希望每一行都有一个用onclick属性和光标指针编写的函数。
当文件被编译并在浏览器中打开时,行应该如下所示:
<tr onclick = 'update( 1 )'>
<td>..... </td>
</tr>
<tr onclick = 'update ( 2 )'
<td>..... </td>
</tr>
等等。
您可以在Gridview的RowDataBound
事件中执行此操作。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "javascript:alert('Hello');");
e.Row.Style.Add("cursor", "pointer");
}
}
相反,为什么不能在datagridview的SelectedIndexChanged()
事件中编写所需的功能?你也可以像这个一样设置所选索引的样式
<SelectedItemStyle Font-Size="10px" Font-Names="Verdana" HorizontalAlign="Left" ForeColor="Black" VerticalAlign="Middle" BackColor="Gold"></SelectedItemStyle>
此onclick事件。。这是指向自定义javascript函数吗?意思update(1)
是客户端javascript函数吗?
当单击数据网格视图的一行时,您希望执行一些服务器端操作。。这就是方法。。。
- 在datagridview中添加一个select命令列:这将使用户能够选择一行
- 在datagridview的onSelectedIndexChanged事件处理程序中编写您想要执行的任何操作
以下是gridview的aspx。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="Id" DataSourceID="SqlDataSource1"
EmptyDataText="There are no data records to display." BackColor="White"
BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" CellPadding="3"
ForeColor="Black" GridLines="Vertical"
onselectedindexchanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:CommandField ShowSelectButton="True" />
<asp:BoundField DataField="Id" HeaderText="Id" ReadOnly="True"
SortExpression="Id" />
<asp:BoundField DataField="UserId" HeaderText="UserId"
SortExpression="UserId" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
</Columns>
<FooterStyle BackColor="#CCCCCC" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#000099" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#CCCCCC" />
</asp:GridView>
注意columns
标签中的
您的事件处理程序将像。。。
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
//Write whatever you want here
}
您可以在RowDataBound事件中使用e.Row访问tr,使用e.Row.RowIndex访问索引。如果要访问对象的实际Id或旧值,则可以使用e.Row.DataItem访问绑定数据。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow )
{
var theItem = e.Row.DataItem as MyItemType;
e.Row.Attributes.Add("onclick","update('" + e.Row.RowIndex + "')");
e.Row.Style.Add("cursor", "pointer");
}
}
行集合的索引从0开始,因此如果希望索引从1开始,则需要将1添加到RowIndex。