FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 4881|回复: 4
打印 上一主题 下一主题

GRID的RowDataBound事件第一行无法调用window.GetShowReference()

[复制链接]
跳转到指定楼层
楼主
发表于 2012-10-19 03:49:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前台代码:

<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,"跳转");
            }            
        }

代码如上所示,数据绑定后,其他行都可以实现跳转。第一行的就没办法跳转了。我看生成的源代码,第一行的跟其他行的不一样。麻烦看下,谢谢
沙发
 楼主| 发表于 2012-10-19 03:53:58 | 只看该作者
第一行数据生成的是:onclick=\"Ext.defer(function(){},0);

而其他行生成的是:onclick=\"Ext.defer(function(){X('windows1').box_show('http://www.baidu.com','跳转');
板凳
 楼主| 发表于 2012-10-19 08:01:21 | 只看该作者
继续跟进该问题:

仔细观察数据后发现,如果后台方法Grid1_RowDataBound调用Window1.GetShowReference(),并且URL中带参数的话,那么实现后的效果是:

点击第二行的链接,URL的参数值是第一行的数据,点击第三行的链接,参数值是第二行的。
地板
 楼主| 发表于 2012-10-19 08:47:27 | 只看该作者
这个问题可能是跟Grid1_RowDataBound这个事件有关的,ASP.NET也存在这个问题

刚刚在网上查了相关文档,大概意思就是说在创建第一行的时候,控件还不存在,所以没办法帮第一行的控件绑定事件

但是ASP.NET里面还可以用e.RowType来判断是否是Header来操作,而EXTASPNET是没有的。

各位大大,有没有办法解决这个问题啊?
5#
 楼主| 发表于 2012-10-19 08:55:42 | 只看该作者
{:soso_e127:}为什么每次都是发完帖子才找到解决方法呢:

http://bbs.extasp.net/forum.php?mod=viewthread&tid=1141

之前有人提过这个问题了。经三石大神指点,才发现有prerowdatabound这个事件可以使用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-11-24 20:55 , Processed in 0.043519 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表