jasonLed 发表于 2022-3-28 16:02:43

动态生成C1GridView,重新绑定后Key值不对?

本帖最后由 jasonLed 于 2022-3-28 16:10 编辑

动态生成C1GridView,重新绑定后取key值,我的本意是要取Button1_Click中绑定的key值,但是实际取到的还是init中绑定的key值,怎么才能取到正确的值?
第一步点击bindgrid,此时key值是button
第二步点击getkeyvalue,目的是得到key值button,但实际取到的还是init

Richard.Ma 发表于 2022-3-28 16:19:21

你好,麻烦上传一个完整的demo上来,我来重现一下问题,这个只有aspx文件跑不起来

jasonLed 发表于 2022-3-28 16:48:40

本帖最后由 jasonLed 于 2022-3-28 16:50 编辑

Richard.Ma 发表于 2022-3-28 16:19
你好,麻烦上传一个完整的demo上来,我来重现一下问题,这个只有aspx文件跑不起来
有cs文件,你直接新建一个网站放进去就可以的,完整的已放附件

Richard.Ma 发表于 2022-3-28 18:25:28

问题已经收到,我这边验证后明天早上给你回复

jasonLed 发表于 2022-3-29 11:28:07

Richard.Ma 发表于 2022-3-28 18:25
问题已经收到,我这边验证后明天早上给你回复

好的,知道问题的原因了吗?

Richard.Ma 发表于 2022-3-29 12:28:55

你可以看一下,点击GetKeyValue按钮时,又执行了一次OnInit方法,导致被设置为了“init”字符

实际上,你点击BindGrid按钮时,也是因为先执行OnInit方法新建了一个C1GridView,否则就无法获取到

你可以给OnInit中开始的时候加入下面的代码测试,这样可以避免第一个问题,但是就会导致第二个问题,
      if (Page.IsPostBack)
            return;

jasonLed 发表于 2022-3-29 12:46:33

本帖最后由 jasonLed 于 2022-3-29 13:33 编辑

Richard.Ma 发表于 2022-3-29 12:28
你可以看一下,点击GetKeyValue按钮时,又执行了一次OnInit方法,导致被设置为了“init”字符

实际上, ...
这样会导致页面为空,不会动态生成gridview。按道理oninit之后,viewstate会被恢复,现在问题是看起来界面是恢复了,但是实际后台后去的绑定内容还是oninit里的

jasonLed 发表于 2022-3-29 16:50:28

有后续进展吗?

Richard.Ma 发表于 2022-3-29 18:16:52

目前暂时没有什么解决办法。这个问题已经作为bug转给研发那边了C1WEB-29016,此贴保留处理。后续研发这边的反馈结果我会更新到帖子中

jasonLed 发表于 2022-4-7 08:47:04

有进一步消息吗?
页: [1] 2
查看完整版本: 动态生成C1GridView,重新绑定后Key值不对?