FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 5440|回复: 10
打印 上一主题 下一主题

封装控件后TextChanged事件报错

[复制链接]
跳转到指定楼层
楼主
发表于 2013-9-11 13:03:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为了简化操作,我对三石的控件进行了封装,但是报图上的错误

function anonymous(values, parent, xindex, xcount) {
with(values){ return !enabled; }
}

function anonymous(values, parent) {
with(values){ return values; }
}

function anonymous() {
var x0=X('frmAdd_ctl00_txtUserAlias');X('').x_updateTpls("");X.state(x0,{"Text":"21","Text_GZ":""});window.X.alert('ok');
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
 楼主| 发表于 2013-9-11 13:34:01 | 只看该作者
问题是封装的控件中如果有Grid,并且设了Datasource,再做过databind()后就出错,职果只是定义Grid的字段,不会出这个问题
板凳
 楼主| 发表于 2013-9-11 13:48:10 | 只看该作者
        protected void Page_Load(object sender, EventArgs e)
        {

            DataAccessor data = new DataAccessor();
            string sql = "select * from tab";
            DataTable table = data.ExecuteReader(sql).Tables[0];

            FineUI.Grid grid = new FineUI.Grid();
            grid.DataSource = table;
            FineUI.BoundField field = new FineUI.BoundField();
            field.DataField = "TNAME";
            grid.Columns.Add(field);
            //grid.DataBind();

            FineUI.TextBox box = new FineUI.TextBox();
            box.AutoPostBack = true;
            box.TextChanged += new EventHandler(box_TextChanged);

            FineUI.FormRow row = new FineUI.FormRow();

            row.Items.Add(box);
            row.Items.Add(grid);
            frmAdd.Rows.Add(row);
         
        }

        void box_TextChanged(object sender, EventArgs e)
        {
            FineUI.Alert.Show("OOO");
        }

好像与我的封装没有关系,我现在没用任何封装,全是FineUI自己的控件也不行呢,请大师们指点
地板
 楼主| 发表于 2013-9-11 13:48:36 | 只看该作者
上例中 grid.DataBind();  如果注释去掉就报错
5#
发表于 2013-9-11 14:10:51 | 只看该作者
没看明白,不过这里是找不到表格,x_updateTpls是表格实例的方法:
  1. X('').x_updateTpls("");
复制代码
6#
 楼主| 发表于 2013-9-11 14:19:04 | 只看该作者
是的,我还发现 如果 PageLoad里写上 if (!Page.IsPostBack) 这种判断,事件都没有响应了,如果不加,可以响应,但是显示多执行了一次,反正现在有表格搅着就不行
三石看一下我的代码,没有封装,只要换一个Datasource就可以看到报错了  谢谢
7#
 楼主| 发表于 2013-9-11 14:22:39 | 只看该作者
我放在 Page_Load  Page_init  OnInit 里都不行
8#
发表于 2013-9-11 14:38:42 | 只看该作者
动态创建控件放在 Page_Init 中,仔细看看这篇博文:http://www.cnblogs.com/sanshi/archive/2012/11/19/2776672.html
9#
 楼主| 发表于 2013-9-11 14:44:52 | 只看该作者
我发现 Grid直接在页面上托进去,C#里只负责赋值,就一切正常,如果是在 C#里创建的Grid再加给进到窗体里,就不行了,也就是Grid的创建地方不一样,效果不同,谁给我讲一下,我如果必须用C#k创建的话, 应该怎么调整下?
谢谢
10#
 楼主| 发表于 2013-9-11 14:58:27 | 只看该作者
三石 ,我试了下,你这个例子非常好,但是也是前提是Grid是直接放在Aspx里的,我的做法是直接在C#里new出来的,会有这个差异,受累帮看看  谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-24 18:44 , Processed in 0.047859 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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