【发布时间】:2012-03-23 14:26:25
【问题描述】:
我有一个telerik radgrid,如下图所示
| Username | Password |
-------------------------
| A_user | ***** |
| A_user2 | ***** |
| A_user3 | ***** |
当我点击其中一行时,它会显示点击行的密码,如下所示:
| Username | Password |
-------------------------
| A_user | ***** |
| A_user2 | A password |
| A_user3 | ***** |
效果很好。我之所以这样做是因为密码的解密是一个相当复杂且漫长的过程,因此一次解密一个密码的耗时较少,尤其是当用户不需要所有密码时。
当我显示密码时,我希望能够在网格中选择密码来复制它。不幸的是,radgrid 将再次触发“RowClick”项目命令,并且该行被取消选择。因此,我无法复制密码。
我的问题是:有没有办法在某些情况下取消 radgrid 的 itemcommand? 我希望能够在密码已经解密时禁用 itemcommand 事件。
提前致谢!
编辑: 我想我还应该提到我正在使用 radajaxloadingpanel 在加载时在网格上显示动画。即使 itemcommand 方法不执行任何操作,也会显示 ajaxloadingpanel,并且我尝试突出显示的文本被取消选择。
更多修改:
这是我的 radgrid 代码
<telerik:RadGrid id="radGridAccounts" runat="server" Width="99%" PageSize="20" AllowPaging="true" AllowSorting="true"
AllowFilteringByColumn="True" ShowStatusBar="true" EnableLinqExpressions="False" GridLines="None"
AllowMultiRowSelection="false">
<ClientSettings EnableRowHoverStyle="true" EnablePostBackOnRowClick="true" AllowKeyboardNavigation="false">
<Selecting AllowRowSelect="True" />
<KeyboardNavigationSettings EnableKeyboardShortcuts="false" />
</ClientSettings>
<PagerStyle Mode="NextPrevAndNumeric" PagerTextFormat=""/>
<MasterTableView AutoGenerateColumns="False" EditMode="InPlace" CommandItemDisplay="Top"
InsertItemDisplay="Top" AllowFilteringByColumn="True" NoMasterRecordsText="Aucun compte"
InsertItemPageIndexAction="ShowItemOnCurrentPage" DataKeyNames="USERN" >
<Columns>
<%--Username--%>
<telerik:GridBoundColumn UniqueName="USERN" DataField="USERN" HeaderText="Username"
AllowFiltering="true" ColumnEditorID="radUsernameEditor"/>
<%--Password--%>
<telerik:GridBoundColumn UniqueName="PASWR" DataField="PASWR" HeaderText="Password"
AllowFiltering="false" ColumnEditorID="radPasswordEditor" />
<%--Edit--%>
<telerik:GridEditCommandColumn ButtonType="ImageButton"
InsertImageUrl=".\Images\ok.gif" UpdateImageUrl=".\Images\ok.gif" CancelImageUrl=".\Images\cancel.gif" />
<%--Delete--%>
<telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" Text="Delete"
ImageUrl=".\Images\delete.gif" />
</Columns>
<CommandItemSettings AddNewRecordText="" RefreshText="" />
</MasterTableView>
</telerik:RadGrid>
还有我的 ItemCommand 代码:
Protected Sub radGridAccounts_ItemCommand(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles radGridAccounts.ItemCommand
Try
If (e.CommandName = "RowClick" AndAlso TypeOf e.Item Is GridDataItem) Then
e.Item.Selected = True
For Each item As GridDataItem In radGridAccounts.Items
If Not item.IsInEditMode Then
If item.Selected Then
'Decrypt the password method
Else
item.Cells(4).Text = "*****"
End If
End If
Next
End If
Catch ex As Exception
DisplayMessage("Error : " & ex.Message, MessageType.Err)
End Try
End Sub
【问题讨论】:
-
你可以只发布你的 radgrid 代码吗,只是对你正在使用的命令感兴趣
-
感谢您调查我的问题。我已经添加了代码。
标签: asp.net vb.net telerik radgrid itemcommand