or
Hello everyone,
I need to use a RadPanelBar in telerik in a way that when it is collapsed it must show a 2-3 details of a person. And when expanded, it shows complete details in its panelbaritem. I am using ItemClick event to read the expand/collapse state and update the header text. But after i implement this event, on every click (to expand/collapse), the whole page flickers. I tried couple of options, but could not avoid it.
Can someone please help? or suggest another control option option?
thanks
<
MasterTableView
CommandItemDisplay
=
"Top"
DataKeyNames
=
"Unit_code"
AllowMultiColumnSorting
=
"True"
EditMode
=
"PopUp"
InsertItemPageIndexAction
=
"ShowItemOnCurrentPage"
HierarchyDefaultExpanded
=
"False"
>
<
Columns
>
<
telerik:GridEditCommandColumn
HeaderText
=
"Edit"
HeaderStyle-Width
=
"50px"
ItemStyle-Width
=
"50px"
HeaderStyle-HorizontalAlign
=
"Left"
ButtonType
=
"LinkButton"
UniqueName
=
"unit_edit"
>
</
telerik:GridEditCommandColumn
>
<
telerik:GridButtonColumn
UniqueName
=
"ColumnLinkCode"
DataTextField
=
"Unit_code"
HeaderText
=
"Unit code"
ButtonType
=
"LinkButton"
>
</
telerik:GridButtonColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Name"
HeaderButtonType
=
"TextButton"
DataField
=
"Unit_name"
UniqueName
=
"Unit_name"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
HeaderText
=
"Description"
HeaderButtonType
=
"TextButton"
DataField
=
"unit_description"
UniqueName
=
"unit_description"
>
</
telerik:GridBoundColumn
>
<
telerik:GridNumericColumn
HeaderText
=
"Credits"
DecimalDigits
=
"0"
DataField
=
"num_credits"
UniqueName
=
"num_credits"
>
</
telerik:GridNumericColumn
>
</
Columns
>
<
ClientSettings
EnablePostBackOnRowClick
=
"false"
EnableRowHoverStyle
=
"false"
>
<
Selecting
AllowRowSelect
=
"True"
CellSelectionMode
=
"SingleCell"
/>
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"True"
SaveScrollPosition
=
"true"
>
</
Scrolling
>
</
ClientSettings
>
my radgrid had 2 level (use Course_ID as a key to link)
Code as follows:
<
telerik:RadGrid
ID
=
"RadGrid_TrainingProviderCourse"
DataSourceID
=
"LDS_Course"
ShowStatusBar
=
"True"
AutoGenerateColumns
=
"False"
AllowSorting
=
"True"
runat
=
"server"
AllowPaging
=
"True"
GridLines
=
"None"
AllowAutomaticDeletes
=
"True"
AllowAutomaticInserts
=
"True"
AllowAutomaticUpdates
=
"True"
CellSpacing
=
"0"
Width
=
"80%"
Skin
=
"Windows7"
>
<
PagerStyle
Mode
=
"NumericPages"
></
PagerStyle
>
<
MasterTableView
DataSourceID
=
"LDS_Course"
DataKeyNames
=
"Course_ID"
AllowMultiColumnSorting
=
"True"
Width
=
"100%"
CommandItemDisplay
=
"Top"
Name
=
"Parent"
AllowAutomaticDeletes
=
"False"
AllowAutomaticInserts
=
"False"
AllowAutomaticUpdates
=
"False"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"ID"
DataSourceID
=
"LDS_TrainingProviderCourse"
Width
=
"100%"
runat
=
"server"
CommandItemDisplay
=
"Top"
Name
=
"SubLevel"
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"Course_ID"
MasterKeyField
=
"Course_ID"
/>
</
ParentTableRelation
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
></
CommandItemSettings
>
<
RowIndicatorColumn
Visible
=
"True"
FilterControlAltText
=
"Filter RowIndicator column"
></
RowIndicatorColumn
>
<
ExpandCollapseColumn
Visible
=
"True"
FilterControlAltText
=
"Filter ExpandColumn column"
></
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn2"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
<
ItemStyle
CssClass
=
"MyImageButton"
></
ItemStyle
>
</
telerik:GridEditCommandColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Course_Fee_USD"
HeaderText
=
"Course_Fee_USD"
HeaderButtonType
=
"TextButton"
DataField
=
"Course_Fee_USD"
UniqueName
=
"Course_Fee_USD"
HeaderStyle-Width
=
"200px"
FilterControlAltText
=
"Filter Course_Fee_USD column"
>
<
HeaderStyle
Width
=
"200px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Course_Fee_IDR"
HeaderText
=
"Course_Fee_IDR"
HeaderButtonType
=
"TextButton"
DataField
=
"Course_Fee_IDR"
UniqueName
=
"Course_Fee_IDR"
HeaderStyle-Width
=
"200px"
FilterControlAltText
=
"Filter Course_Fee_IDR column"
>
<
HeaderStyle
Width
=
"200px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Course_ID"
Visible
=
"false"
HeaderText
=
"Course_ID"
DataField
=
"Course_ID"
UniqueName
=
"Course_ID"
HeaderStyle-Width
=
"200px"
FilterControlAltText
=
"Filter Course_ID column"
>
</
telerik:GridBoundColumn
>
<
telerik:GridButtonColumn
ConfirmText
=
"Delete this record?"
ButtonType
=
"ImageButton"
CommandName
=
"Delete"
Text
=
"Delete"
UniqueName
=
"DeleteColumn"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
<
ItemStyle
HorizontalAlign
=
"Center"
CssClass
=
"MyImageButton"
></
ItemStyle
>
</
telerik:GridButtonColumn
>
</
Columns
>
<
EditFormSettings
EditFormType
=
"Template"
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn1 column"
UniqueName
=
"EditCommandColumn1"
>
</
EditColumn
>
<
FormTemplate
>
<
table
id
=
"Table2"
cellspacing
=
"2"
cellpadding
=
"1"
width
=
"50%"
border
=
"1"
rules
=
"none"
style
=
"border-collapse: collapse;"
>
<
tr
class
=
"EditFormHeader"
>
<
td
style
=
"width:150px"
>
<
asp:Label
ID
=
"Label5"
Text
=
"Training Provider"
runat
=
"server"
></
asp:Label
>
</
td
>
<
td
>
<
telerik:RadDropDownList
ID
=
"rdl_TrainingProvider"
runat
=
"server"
DataSourceID
=
"LDS_TrainingProvider"
DefaultMessage
=
"Please select..."
DataValueField
=
"Training_Provider_ID"
DataTextField
=
"Internal_Name"
>
</
telerik:RadDropDownList
>
<
asp:RequiredFieldValidator
ID
=
"RequiredFieldValidator11"
runat
=
"server"
ControlToValidate
=
"rdl_TrainingProvider"
InitialValue
=
"Please Select..."
ErrorMessage
=
"Please select a Training Provider."
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"lb"
Text
=
"Course Fee (USD)"
runat
=
"server"
></
asp:Label
>
</
td
>
<
td
>
<
asp:TextBox
ID
=
"tb_Course_Fee_USD"
runat
=
"server"
Text='<%# Bind("Course_Fee_USD") %>' TabIndex="2"></
asp:TextBox
>
<
asp:RegularExpressionValidator
ID
=
"RegularExpressionValidator8"
runat
=
"server"
Display
=
"Dynamic"
ErrorMessage
=
"Please, enter valid number."
ValidationExpression
=
"^(\d|,)*\.?\d*$"
ControlToValidate
=
"tb_Course_Fee_USD"
>
</
asp:RegularExpressionValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"Label2"
Text
=
"Course Fee (IDR)"
runat
=
"server"
></
asp:Label
>
</
td
>
<
td
>
<
asp:TextBox
ID
=
"tb_Course_Fee_IDR"
runat
=
"server"
Text='<%# Bind("Course_Fee_IDR") %>' TabIndex="2"></
asp:TextBox
>
<
asp:RegularExpressionValidator
ID
=
"RegularExpressionValidator9"
runat
=
"server"
Display
=
"Dynamic"
ErrorMessage
=
"Please, enter valid number."
ValidationExpression
=
"^(\d|,)*\.?\d*$"
ControlToValidate
=
"tb_Course_Fee_IDR"
>
</
asp:RegularExpressionValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
align
=
"right"
colspan
=
"2"
>
<
asp:Button
ID
=
"btnUpdate"
Text='<%# IIf((TypeOf(Container) is GridEditFormInsertItem), "Insert", "Update") %>'
runat="server" CommandName='<%# IIf((TypeOf(Container) is GridEditFormInsertItem), "PerformInsert", "Update")%>' >
</
asp:Button
>
<
asp:Button
ID
=
"btnDelete"
Text
=
"Delete"
runat
=
"server"
CausesValidation
=
"False"
CommandName
=
"Delete"
></
asp:Button
>
<
asp:Button
ID
=
"btnCancel"
Text
=
"Cancel"
runat
=
"server"
CausesValidation
=
"False"
CommandName
=
"Cancel"
></
asp:Button
>
</
td
>
</
tr
>
</
table
>
</
FormTemplate
>
</
EditFormSettings
>
<
PagerStyle
PageSizeControlType
=
"RadComboBox"
></
PagerStyle
>
</
telerik:GridTableView
>
</
DetailTables
>
<
CommandItemSettings
ExportToPdfText
=
"Export to PDF"
ShowAddNewRecordButton
=
"False"
></
CommandItemSettings
>
<
RowIndicatorColumn
Visible
=
"True"
FilterControlAltText
=
"Filter RowIndicator column"
></
RowIndicatorColumn
>
<
ExpandCollapseColumn
Visible
=
"True"
FilterControlAltText
=
"Filter ExpandColumn column"
></
ExpandCollapseColumn
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"ImageButton"
UniqueName
=
"EditCommandColumn"
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
>
<
ItemStyle
CssClass
=
"MyImageButton"
></
ItemStyle
>
</
telerik:GridEditCommandColumn
>
<
telerik:GridBoundColumn
DataField
=
"Course_ID"
FilterControlAltText
=
"Filter Course_ID column"
HeaderButtonType
=
"TextButton"
HeaderText
=
"Course_ID"
ReadOnly
=
"True"
SortExpression
=
"Course_ID"
HeaderStyle-Width
=
"200px"
UniqueName
=
"Course_ID"
Visible
=
"false"
>
<
HeaderStyle
Width
=
"200px"
/>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Course_Name"
HeaderText
=
"Course Name"
HeaderButtonType
=
"TextButton"
DataField
=
"Course_Name"
UniqueName
=
"Course_Name"
FilterControlAltText
=
"Filter Course_Name column"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Course_Name_Ind"
HeaderText
=
"Course Name (Ind)"
HeaderButtonType
=
"TextButton"
DataField
=
"Course_Name_Ind"
UniqueName
=
"Course_Name_Ind"
HeaderStyle-Width
=
"200px"
FilterControlAltText
=
"Filter Course_Name_Ind column"
>
<
HeaderStyle
Width
=
"200px"
></
HeaderStyle
>
</
telerik:GridBoundColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
UniqueName
=
"EditCommandColumn1"
FilterControlAltText
=
"Filter EditCommandColumn1 column"
></
EditColumn
>
</
EditFormSettings
>
<
PagerStyle
PageSizeControlType
=
"RadComboBox"
></
PagerStyle
>
</
MasterTableView
>
<
FilterMenu
EnableImageSprites
=
"False"
></
FilterMenu
>
</
telerik:RadGrid
>
<
asp:LinqDataSource
ID
=
"LDS_Course"
runat
=
"server"
ContextTypeName
=
"dcLRDBDataContext"
EntityTypeName
=
""
TableName
=
"db_Courses"
>
</
asp:LinqDataSource
>
<
asp:LinqDataSource
ID
=
"LDS_TrainingProviderCourse"
runat
=
"server"
ContextTypeName
=
"dcLRDBDataContext"
EntityTypeName
=
""
TableName
=
"db_Training_Providers_Course_Lists"
Where
=
"Course_ID == @Course_ID"
>
<
WhereParameters
>
<
asp:Parameter
Name
=
"Course_ID"
Type
=
"Int32"
/>
</
WhereParameters
>
</
asp:LinqDataSource
>
How can I get the Course_ID from master/parent when perform insert ?
my code behind:
Protected Sub RadGrid_TrainingProviderCourse_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGrid_TrainingProviderCourse.ItemCommand
RadGrid_TrainingProviderCourse.MasterTableView.ClearEditItems()
If e.CommandName = RadGrid.InitInsertCommandName Then 'Click Add New Record button
Dim editColumn As GridEditCommandColumn = CType(RadGrid_TrainingProviderCourse.MasterTableView.GetColumn("EditCommandColumn"), GridEditCommandColumn)
editColumn.Visible = False
ElseIf (e.CommandName = RadGrid.RebindGridCommandName AndAlso e.Item.OwnerTableView.IsItemInserted) Then
e.Canceled = True
Else
Dim editColumn As GridEditCommandColumn = CType(RadGrid_TrainingProviderCourse.MasterTableView.GetColumn("EditCommandColumn"), GridEditCommandColumn)
If Not editColumn.Visible Then 'Click Cancel button (both Insert and Update mode)
editColumn.Visible = True
End If
Dim ddlTrainingProvider As RadDropDownList = DirectCast(e.Item.FindControl("rdl_TrainingProvider"), RadDropDownList)
Dim txt_Course_Fee_USD As TextBox = DirectCast(e.Item.FindControl("tb_Course_Fee_USD"), TextBox)
Dim txt_Course_Fee_IDR As TextBox = DirectCast(e.Item.FindControl("tb_Course_Fee_IDR"), TextBox)
Dim dc As New dcLRDBDataContext
If e.CommandName = "PerformInsert" Then
Dim newRecord1 As New db_Training_Providers_Course_List
dc.db_Training_Providers_Course_Lists.InsertOnSubmit(newRecord1)
If ddlTrainingProvider.SelectedValue <> ddlTrainingProvider.DefaultMessage Then
newRecord1.Training_Provider_ID = ddlTrainingProvider.SelectedValue
End If
newRecord1.Course_Fee_USD = txt_Course_Fee_USD.Text
newRecord1.Course_Fee_IDR = txt_Course_Fee_IDR.Text
newRecord1.LastUpdateDate = DateTime.Now
newRecord1.LastUpdateBy = HttpContext.Current.Session("UserID")
dc.SubmitChanges()
RadGrid_TrainingProviderCourse.MasterTableView.ClearEditItems()
RadGrid_TrainingProviderCourse.DataBind()
ElseIf e.CommandName = "Update" Then
Dim lid As Integer = e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("ID")
Dim rec = (From p In dc.db_Training_Providers_Course_Lists Where p.ID = lid).FirstOrDefault
If Not rec Is Nothing Then
If ddlTrainingProvider.SelectedValue <> ddlTrainingProvider.DefaultMessage Then
rec.Training_Provider_ID = ddlTrainingProvider.SelectedValue
End If
rec.Course_Fee_USD = txt_Course_Fee_USD.Text
rec.Course_Fee_IDR = txt_Course_Fee_IDR.Text
rec.LastUpdateBy = HttpContext.Current.Session("UserID")
rec.LastUpdateDate = DateTime.Now
dc.SubmitChanges()
End If
RadGrid_TrainingProviderCourse.MasterTableView.ClearEditItems()
RadGrid_TrainingProviderCourse.DataBind()
ElseIf e.CommandName = "Delete" Then
Dim lid As Integer = e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("ID")
Dim rec2 = (From p In dc.db_Training_Providers_Course_Lists Where p.ID = lid).FirstOrDefault
If Not IsNothing(rec2) Then
dc.db_Training_Providers_Course_Lists.DeleteOnSubmit(rec2)
dc.SubmitChanges()
End If
RadGrid_TrainingProviderCourse.MasterTableView.ClearEditItems()
RadGrid_TrainingProviderCourse.DataBind()
End If
dc.Dispose()
End If
End Sub
Thanks