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" />
                    <extinkButtonField 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