如何解决如何在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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。