Sea*_*ean 3 asp.net viewstate events gridview
我有一个Gridview AutoGenerateColumns="False".
我正在使用TemplateField在相应的ItemTemplate和EditItemTemplate字段中的GridView的第一列中显示我的编辑,更新和取消'按钮'.
在ItemTemplate中,我有一个ImageButtong,其CommandName为"Edit".这按预期工作,我可以在RowCommand事件处理程序中放置一个断点,以查看"事件"命令名称.单击后,回发将该行置于编辑模式.所有文本框都按原样显示.
此时,上面的EditItemTemplate会显示两个ImageButtons.一个有它CommandName = "Update",另一个有"取消".
我的问题在于更新ImageButton上的点击回发了,但是RowCommand和RowUpdating事件都没有被触发.
我在GridView标记中设置了必需的属性.(注意,在gridview中EnableViewState="False"- 如果我将其设置为True,我会得到标准
"无法加载viewstate.控制树......"等错误)
我注意到的一件奇怪的事情让我认为这是一个ViewState问题,如果我将Update按钮的CommandName更改为"Edit",那么回发事件会在RowCommand事件中被捕获...
欢迎任何建议.谢谢.
小智 7
如Asem和Ron所述,将CommandValidation ="false"属性添加到CommandField可以解决问题.原因是我在页面上有一些其他验证控件,在GridView更新页面上触发了其他验证控件,所以我认为最好设置一个ValidationSummary属性.
小智 5
我遇到过同样的情况,我的“编辑”按钮导致其他验证(尽管有隐藏的弹出窗口)在后台执行。
通过阅读解决方案,我一直在寻找CausesValidation="false"解决此问题的标准属性。我无法找到该字段,因为好像我在使用AutoGenerateEditButton="True"将编辑按钮添加到gridview一样。
我的解决方案如下,我希望这也可以帮助您节省一些宝贵的时间。
设置AutoGenerateEditButton="False"这种方式,您可以通过ASP代码添加此字段。
使用下面的代码将“编辑”按钮字段添加到您的gridView代码中,如下所示。
<asp:commandfield showeditbutton="true" causesvalidation="false" headertext="Edit"/>
Run Code Online (Sandbox Code Playgroud)如果验证是问题所在,您现在将可以看到更新的模块触发。
| 归档时间: |
|
| 查看次数: |
28549 次 |
| 最近记录: |