FineUI 官方论坛
标题:
GRID的RowDataBound事件第一行无法调用window.GetShowReference()
[打印本页]
作者:
Panda
时间:
2012-10-19 03:49
标题:
GRID的RowDataBound事件第一行无法调用window.GetShowReference()
前台代码:
<ext:Grid ID="Grid1" ShowHeader="false" AutoScroll="false" AutoHeight="true"
Height="600px" AllowPaging="true" IsDatabasePaging="true" EnableRowNumber="true"
PageSize="100"
runat="server">
<Columns>
<ext:BoundField DataField="C_NAME" HeaderText="姓名" Width="150px" TextAlign="Center" />
<ext
inkButtonField Text="测试" ColumnID="C_TEST" HeaderText="操作" EnablePostBack="false"
Icon="Telephone" TextAlign="Center" />
</Columns>
</ext:Grid>
<ext:Window ID="Window1" WindowPosition="Center" IsModal="true" Popup="false"
IFrameUrl="about:blank" EnableIFrame="true" EnableResize="true" Target="Self"
EnableMaximize="true" Width="560px" Height="560px" AutoScroll="true" runat="server">
</ext:Window>
后台代码:
protected void Grid1_RowDataBound(object sender, ExtAspNet.GridRowEventArgs e)
{
LinkButtonField LB = EGrid_BookList.FindColumn("C_TEST") as LinkButtonField;
DataRowView row = e.DataItem as DataRowView;
if (row != null)
{
LB.OnClientClick = Window1.GetShowReference(
http://www.baidu.com
,"跳转");
}
}
代码如上所示,数据绑定后,其他行都可以实现跳转。第一行的就没办法跳转了。我看生成的源代码,第一行的跟其他行的不一样。麻烦看下,谢谢
作者:
Panda
时间:
2012-10-19 03:53
第一行数据生成的是:onclick=\"Ext.defer(function(){},0);
而其他行生成的是:onclick=\"Ext.defer(function(){X('windows1').box_show('http://www.baidu.com','跳转');
作者:
Panda
时间:
2012-10-19 08:01
继续跟进该问题:
仔细观察数据后发现,如果后台方法Grid1_RowDataBound调用Window1.GetShowReference(),并且URL中带参数的话,那么实现后的效果是:
点击第二行的链接,URL的参数值是第一行的数据,点击第三行的链接,参数值是第二行的。
作者:
Panda
时间:
2012-10-19 08:47
这个问题可能是跟Grid1_RowDataBound这个事件有关的,ASP.NET也存在这个问题
刚刚在网上查了相关文档,大概意思就是说在创建第一行的时候,控件还不存在,所以没办法帮第一行的控件绑定事件
但是ASP.NET里面还可以用e.RowType来判断是否是Header来操作,而EXTASPNET是没有的。
各位大大,有没有办法解决这个问题啊?
作者:
Panda
时间:
2012-10-19 08:55
{:soso_e127:}为什么每次都是发完帖子才找到解决方法呢:
http://bbs.extasp.net/forum.php?mod=viewthread&tid=1141
之前有人提过这个问题了。经三石大神指点,才发现有prerowdatabound这个事件可以使用。
欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/)
Powered by Discuz! X3.4