My last challenge to solve and this project will work.
I have a Delete button in a DETAILS TABLE. Using the GridButtonColumn with CommandName="Delete" and UniqueName="Delete Entry"
I need to be able to hide these based on certain conditions. I would probably put the code in the ItemDataBound. I would need to reference my second DataKeyName (QTRInserted) to decide to Hide or Show the Delete button. I DO NOT WANT TO HIDE THE ENTIRE COLUMN. Thanks.
I have a Delete button in a DETAILS TABLE. Using the GridButtonColumn with CommandName="Delete" and UniqueName="Delete Entry"
I need to be able to hide these based on certain conditions. I would probably put the code in the ItemDataBound. I would need to reference my second DataKeyName (QTRInserted) to decide to Hide or Show the Delete button. I DO NOT WANT TO HIDE THE ENTIRE COLUMN. Thanks.
<DetailTables> <telerik:GridTableView runat="server" DataSourceID="sqlDSDetails" Name="Details" Width="100%" CommandItemDisplay="Top" DataKeyNames="Details_ID, QTRInserted"> <ParentTableRelation>4 Answers, 1 is accepted
0
dbernett
Top achievements
Rank 2
answered on 08 Jun 2011, 07:45 PM
I seem to have it working but it's sloppy. I have to eat an exception. Any betters ideas?
Protected Sub grdMSC_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Dim QTRInserted As String = Nothing If e.Item.OwnerTableView.Name = "Details" AndAlso (TypeOf e.Item Is GridEditableItem) Then Try Dim item As GridEditableItem = DirectCast(e.Item, GridEditableItem) QTRInserted = item.GetDataKeyValue("QTRInserted") Catch ' each exception End Try End If If TypeOf e.Item Is GridDataItem And e.Item.OwnerTableView.Name = "Details" Then Dim item2 As GridDataItem = DirectCast(e.Item, GridDataItem) If QTRInserted <> CurrentQuarter Then item2("DeleteEntry").Visible = False End If End If End If0
Shinu
Top achievements
Rank 2
answered on 09 Jun 2011, 08:10 AM
Hello David,
You can access the Delete button from code and hide it like below.
ASPX:
VB.Net:
-Shinu.
You can access the Delete button from code and hide it like below.
ASPX:
<telerik:GridButtonColumn CommandName="Delete" Text="delete" UniqueName="DeleteEntry" ButtonType="LinkButton"> </telerik:GridButtonColumn>VB.Net:
Protected Sub grdMSC_ItemDataBound(sender As Object, e As GridItemEventArgs) If TypeOf e.Item Is GridDataItem Then Dim item As GridDataItem = DirectCast(e.Item, GridDataItem) Dim QTRInserted As String = item.GetDataKeyValue("QTRInserted").ToString() If QTRInserted <> CurrentQuarter Then Dim btnDelete As LinkButton = DirectCast(item("DeleteEntry").Controls(0), LinkButton) btnDelete.Visible = False End If End IfEnd Sub-Shinu.
0
dbernett
Top achievements
Rank 2
answered on 09 Jun 2011, 01:37 PM
Thanks but that code throws an error on the DataKeys retrieval. This happens when I hit the Expand chevron. I'm dealing with a Master Detail Hierachy Grid.
I did get it to work if I throw a Try Catch Block around it.
NO TRY CATCH Block produces this on Expand
I did get it to work if I throw a Try Catch Block around it.
//To show Delete or NOT. Only allow delete if same Quarter as entry if (e.Item is GridDataItem) { try { GridDataItem item = (GridDataItem)e.Item; string QTRInserted = item.GetDataKeyValue("QTRInserted").ToString(); if (QTRInserted != CurrentQuarter) { LinkButton btnDelete = (LinkButton)item["DeleteEntry"].Controls[0]; btnDelete.Visible = false; } } catch {// Eat Excepton - fix later} } }NO TRY CATCH Block produces this on Expand
Object reference not set to an instance of an object. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.NullReferenceException: Object reference not set to an instance of an object. Source Error: Line 72: Dim QTRInserted As String = item.GetDataKeyValue("QTRInserted").ToString() 0
Shinu
Top achievements
Rank 2
answered on 13 Jun 2011, 04:54 AM
Hello David,
Have you set the DataKeyNames correctly?
aspx:
Thanks,
Shinu.
Have you set the DataKeyNames correctly?
aspx:
<MasterTableView DataKeyNames="QTRInserted" . . . . . . . .>Thanks,
Shinu.