如何在asp.net中的DataViewGrid行上创建一个以行索引为参数的onclick处理程序
How can I make an onclick handler with a row index as parameter, on a DataView Grid row in asp.net?
我有一个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。
相关文章:
- Javascript 异常 “参数名称: 索引” 使用 jquery
- 如何避免在将索引作为函数的参数发送时引用for循环中的最后一个索引
- 在 javascript 中将数组索引作为参数传递
- 将参数转换为数组,但无法访问单个索引
- 参数“索引控制器”不是一个函数,未定义
- 动态递增 Javascript 函数参数名称的索引
- 在 javascript 中将参数作为键索引传递
- 如何在Three.js上使用额外的参数作为z索引
- 传递给.attr()的函数的索引和值参数
- AJAX调用中缺少POST参数会导致PHP脚本中出现未定义的索引警告
- Javascript 什么是参数中的“索引”
- 通过Javascript、How将Dropdownlist索引作为参数发送给WS
- JavaScript数组#映射:索引参数
- 如何获取行索引并将其作为参数发送给javascript函数
- 对具有多个值的查询字符串参数使用索引
- 嵌入参数与索引页
- struts2形式绑定参数到集合而不使用索引
- 如何在Javascript中设置. foreach循环中的值和索引参数?
- 索引页排序集合的附加参数
- 如何在asp.net中的DataViewGrid行上创建一个以行索引为参数的onclick处理程序