如何在asp.net的DataView Grid行上创建一个以行索引为参数的onclick处理程序?

| 我有一个ASP.net数据视图网格,我希望每一行都应该有一个用onclick属性和光标指针编写的函数。 当文件被编译然后在浏览器中打开时,行应如下所示:
<tr onclick = \'update( 1 )\'>
<td>..... </td>

</tr>

<tr onclick = \'update ( 2 )\' 
<td>..... </td>

</tr>
等等     
已邀请:
您可以在Gridview的“ 1”事件中进行操作。
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时执行一些服务器端操作。这是方法... 将选择命令列添加到datagridview:这将使用户能够选择行。 在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开始,则需要向RowIndex添加1。     

要回复问题请先登录注册