GridView问题

harrylyk 2012-06-03 05:09:20
GridView绑定RowDataBound事件,在方法中获取e.Row.DataItem总为空,获取不了数据源的项,这是什么问题?


<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound" OnDataBound="GridView1_DataBound">
<Columns>
<asp:TemplateField HeaderText="Country Name">
<ItemTemplate>
<%#Eval("CountryName") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>


protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//这里的country总为空
Tcountry country = e.Row.DataItem as Tcountry;
e.Row.Attributes.Add("ondblclick", string.Format("alert('{0}')", country.CountryId.ToString()));
}
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨鸟 2012-06-03
  • 打赏
  • 举报
回复
我觉得你这样写试试: Tcountry country = (Tcountry)e.Row.DataItem ;
笨鸟 2012-06-03
  • 打赏
  • 举报
回复
那我认为就是e.Row.DataItem获取的不对

[Quote=引用 3 楼 的回复:]
引用 1 楼 的回复:

你可以设置断点,然后在监视窗口或者命令窗口打印 e.Row.DataItem.GetType().FullName 的值看看。


这里e.Row.DataItem的返回值始终为null,访问不了e.Row.DataItem.GetType().FullName
[/Quote]
harrylyk 2012-06-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

你可以设置断点,然后在监视窗口或者命令窗口打印 e.Row.DataItem.GetType().FullName 的值看看。
[/Quote]

这里e.Row.DataItem的返回值始终为null,访问不了e.Row.DataItem.GetType().FullName
licai1210 2012-06-03
  • 打赏
  • 举报
回复
        if (e.Row.RowType == DataControlRowType.DataRow)
{
//这里的country总为空
Tcountry country = e.Row.DataItem as Tcountry;
e.Row.Attributes.Add("ondblclick", string.Format("alert('{0}')", country.CountryId.ToString()));
}
  • 打赏
  • 举报
回复
你可以设置断点,然后在监视窗口或者命令窗口打印 e.Row.DataItem.GetType().FullName 的值看看。

62,268

社区成员

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

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

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

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