FineUI 官方论坛

标题: 【常见问题】Grid删除行时Grid1.SelectedRowIndexArray.Length==0 [打印本页]

作者: sanshi    时间: 2018-9-20 12:10
标题: 【常见问题】Grid删除行时Grid1.SelectedRowIndexArray.Length==0
新手必看!如果你已经有 FineUI一年以上使用经验,请绕行!

问题都是这样:

在没有找到解决办法之前,都很神奇。

在知道最终答案的时候,一般都是:切!这么简单!

这是一个来自于知识星球的主题,这个问题新手最容易犯了,记录一下:
[attach]11492[/attach]

仅凭这个代码片段是无法解决问题的。我们需要用户提供基于空项目重现问题的示例,这个很关键,也希望大家能及时提供,方便快速解决问题:
[attach]11494[/attach]

拿到用户提供的空项目后,调试很容易发现问题:
[attach]11495[/attach]

在用户代码中,可以看到明显的错误:
[attach]11496[/attach]

你能发现问题吗?

这里少了 IsPostBack 的判断,所以每次回发时都会重新加载表格数据(此时会清空当前选中项),所以自然后台就是这样了:
Grid1.SelectedRowIndexArray.Length == 0

解决办法:
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (!IsPostBack)
  4.             {
  5.                 btnDelete.ConfirmText = String.Format("你确定要删除选中的 <b><script>{0}</script></b> 行数据吗?", Grid1.GetSelectedCountReference());
  6.                 btnDelete.OnClientClick = Grid1.GetNoSelectionAlertReference("请至少选择一项!");
  7.                 BindGrid();
  8.             }
  9.         }
复制代码


然后一切都归于正常:
[attach]11497[/attach]

[attach]11498[/attach]

作者: shihahayue    时间: 2018-9-20 12:26
这玩意还一年以上,是开发就应该注意到
作者: sanshi    时间: 2018-9-20 12:41
shihahayue 发表于 2018-9-20 12:26
这玩意还一年以上,是开发就应该注意到

说是那么说,不过还是有些开发人员容易忽略这个问题,然后遇到的错误就千奇百怪
作者: zy32002    时间: 2018-9-20 13:34
这问题,群里的没想好同学已经告诉他了,他不信。。。。。




欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/) Powered by Discuz! X3.4