I need to bind a UserControl in the ItemCreated Event of Telerik RadGrid.
In order to bind it,I need the primary key value that is DataKeyValue and also in DataItem.
But,when using NestedViewTemplate,I am not able to access the value.
Also,when the Hierarchy Button(left side of Grid) is clicked,the ItemCreated Event is fired first and after that NeedDataSource event is fired,sue to which the DataItem and DataKeyValue are not avaiable.
I have provide the code.Kindly let me know if the scenario which I am trying to achieve is possbile or what is the probelm with the code.?
or do I need to use FormTemplate-EditMode to achieve it?
In order to bind it,I need the primary key value that is DataKeyValue and also in DataItem.
But,when using NestedViewTemplate,I am not able to access the value.
Also,when the Hierarchy Button(left side of Grid) is clicked,the ItemCreated Event is fired first and after that NeedDataSource event is fired,sue to which the DataItem and DataKeyValue are not avaiable.
I have provide the code.Kindly let me know if the scenario which I am trying to achieve is possbile or what is the probelm with the code.?
or do I need to use FormTemplate-EditMode to achieve it?
<
telerik:RadGrid
ID
=
"radGridQuestionnaire"
runat
=
"server"
<br>
Width="100%" <
br
>
PageSize="20" <
br
>
<
font
class
=
"Apple-tab-span"
style
=
"white-space: pre;"
> </
font
> AutoGenerateColumns="False" <
br
>
GridLines="None" <
br
>
AllowSorting="True" <
br
>
<
font
class
=
"Apple-tab-span"
style
=
"white-space: pre;"
> </
font
> AllowPaging="True" <
br
>
OnNeedDataSource="radGridQuestionnaire_NeedDataSource"<
br
>
OnItemCreated="radGridQuestionnaire_ItemCreated"<
br
>
OnItemDataBound="radGridQuestionnaire_ItemDataBound"<
br
>
OnItemCommand="radGridQuestionnaire_ItemCommand"><
br
>
<
PagerStyle
Mode
=
"NextPrevNumericAndAdvanced"
/><
br
>
<
font
class
=
"Apple-tab-span"
style
=
"white-space: pre;"
> </
font
> <
MasterTableView
EnableViewState
=
"true"
DataKeyNames
=
"Form.DisplayFormName,Question.QuestionNumber,Question.QuestionId,ReviewId"
Width
=
"100%"
><
br
>
<
RowIndicatorColumn
><
br
>
<
HeaderStyle
Width
=
"20px"
></
HeaderStyle
><
br
>
</
RowIndicatorColumn
><
br
>
<
font
class
=
"Apple-tab-span"
style
=
"white-space: pre;"
> </
font
> <
ExpandCollapseColumn
><
br
>
<
font
class
=
"Apple-tab-span"
style
=
"white-space: pre;"
> </
font
> <
HeaderStyle
Width
=
"20px"
></
HeaderStyle
><
br
>
<
font
class
=
"Apple-tab-span"
style
=
"white-space: pre;"
> </
font
> </
ExpandCollapseColumn
><
br
>
<
Columns
><
br
>
<
telerik:GridBoundColumn
HeaderText
=
"Form"
UniqueName
=
"FormName"
DataField
=
"Form.DisplayFormName"
HeaderStyle-Width
=
"40%"
/><
br
>
<
telerik:GridBoundColumn
HeaderText
=
"Question #"
UniqueName
=
"QuestionNumber"
DataField
=
"Question.QuestionNumber"
HeaderStyle-Width
=
"15%"
/><
br
>
<
telerik:GridBoundColumn
HeaderText
=
"Status"
UniqueName
=
"QuestionnaireStatusName"
DataField
=
"QuestionnaireStatus.QuestionnaireStatusName"
HeaderStyle-Width
=
"15%"
/><
br
>
<
telerik:GridBoundColumn
HeaderText
=
"Submitted By"
UniqueName
=
"SubmittedBy"
DataField
=
"Questionnaire.SubmittedBy"
HeaderStyle-Width
=
"15%"
/><
br
>
<
telerik:GridBoundColumn
HeaderText
=
"Submitted On"
UniqueName
=
"SubmittedOn"
DataField
=
"Questionnaire.SubmittedOn"
HeaderStyle-Width
=
"15%"
/><
br
>
</
Columns
><
br
>
<
NestedViewTemplate
><
br
>
<
div
id
=
"divChoiceMain"
class
=
"pad10"
><
br
>
<
div
class
=
"divChoiceTextSection"
><
br
>
<
div
class
=
"divChoiceTextLeftSection"
>Form:</
div
><
br
>
<
div
class
=
"divFloatLeft"
><
br
>
<
asp:Label
ID
=
"lblFormName"
runat
=
"server"
Text='<%# Eval("Form.DisplayFormName")%>'/><
br
>
</
div
><
br
>
</
div
><
br
>
<
div
class
=
"divChoiceTextSection"
><
br
>
<
div
class
=
"divChoiceTextLeftSection"
>Question #:</
div
><
br
>
<
div
class
=
"divFloatLeft"
><
br
>
<
div
><
br
>
<
asp:Label
ID
=
"lblQuestionNumber"
runat
=
"server"
Text='<%#Eval("Question.QuestionNumber")%>'/><
br
>
</
div
><
br
>
</
div
><
br
>
</
div
><
br
>
<
div
class
=
"divChoiceTextCorrectiveActionSection"
><
br
>
<
div
class
=
"divFloatLeft padtop5"
style
=
"margin-left:100px;"
><
br
>
<
ar:ReviewConfigurationToolTipUC
ID
=
"reviewConfigurationToolTipUC"
runat
=
"server"
/><
br
>
</
div
><
br
>
</
div
><
br
>
</
div
><
br
>
<
div
class
=
"clearfix pad10"
><
br
>
<
div
class
=
"divChoiceTextSection"
><
br
>
<
div
class
=
"divFloatLeft padRight10"
><
br
>
<
asp:LinkButton
ID
=
"lnkBtnSave"
runat
=
"server"
Text
=
"Save"
CommandName
=
"Save"
></
asp:LinkButton
><
br
>
</
div
><
br
>
<
div
class
=
"divFloatLeft padRight10"
><
br
>
<
asp:LinkButton
ID
=
"lnkSaveAndSubmit"
runat
=
"server"
Text
=
"Save & Submit"
CommandName
=
"Submit"
></
asp:LinkButton
><
br
>
</
div
><
br
>
<
div
class
=
"divFloatLeft"
><
br
>
<
asp:LinkButton
ID
=
"lnkBtnCancel"
runat
=
"server"
Text
=
"Cancel"
CommandName
=
"Cancel"
></
asp:LinkButton
><
br
>
</
div
><
br
>
</
div
><
br
>
</
div
><
br
>
</
NestedViewTemplate
><
br
>
</
MasterTableView
><
br
>
</
telerik:RadGrid
>
protected void radGridQuestionnaire_ItemCreated(object sender, GridItemEventArgs e)<
br
>
{<
br
>
if (e.Item is GridNestedViewItem)<
br
>
{<
br
>
GridDataItem gridDataItemObj = (e.Item as GridNestedViewItem).ParentItem;<
br
>
GridNestedViewItem gridNestedViewItemObj = e.Item as GridNestedViewItem;<
br
>
<
br
>
if (gridDataItemObj == null || gridNestedViewItemObj == null)<
br
>
return;<
br
>
<
br
>
//Form.DisplayFormName,Question.QuestionNumber,ReviewId<
br
>
//string formName = gridDataItemObj.GetDataKeyValue("Form.DisplayFormName") as string;<
br
>
//string questionNumaber = gridDataItemObj.GetDataKeyValue("Question.QuestionNumber") as string;<
br
>
//string reviewId = gridDataItemObj.GetDataKeyValue("ReviewId") as string;<
br
>
//string questionIdStr = gridDataItemObj.GetDataKeyValue("Question.QuestionId") as string;<
br
>
if (e.Item.ItemIndex >= 0)<
br
>
{<
br
>
string formName = radGridQuestionnaire.MasterTableView.DataKeyValues[e.Item.ItemIndex]["Form.DisplayFormName"] as string;<
br
>
string questionNumaber = radGridQuestionnaire.MasterTableView.DataKeyValues[e.Item.ItemIndex]["Question.QuestionNumber"] as string;<
br
>
string reviewId = radGridQuestionnaire.MasterTableView.DataKeyValues[e.Item.ItemIndex]["ReviewId"] as string;<
br
>
string questionIdStr = radGridQuestionnaire.MasterTableView.DataKeyValues[e.Item.ItemIndex]["Question.QuestionId"] as string;<
br
>
}<
br
>
<
br
>
//object dataKeyValue = ((sender as RadGrid).NamingContainer as DataItem).GetDataKeyValue("ID");<
br
>
//use the dataKeyValue to fetch the correct Employee object <
br
>
Questionnaire questionnaireObj = gridDataItemObj.DataItem as Questionnaire;<
br
>
ReviewConfigurationToolTipUC reviewConfigurationToolTipUCObj = gridNestedViewItemObj.FindControl("reviewConfigurationToolTipUC") as ReviewConfigurationToolTipUC;<
br
>
<
br
>
if (questionnaireObj!=null && questionnaireObj.Question!=null && questionnaireObj.Question.QuestionId.HasValue && reviewConfigurationToolTipUCObj != null)<
br
>
{<
br
>
//Create FormQuestion Obj.<
br
>
FormQuestion formQuestionObj = new FormQuestion { QuestionId = questionnaireObj.Question.QuestionId };<
br
>
reviewConfigurationToolTipUCObj.BuildToolTip(questionnaireObj.Question.QuestionName, formQuestionObj, null);<
br
>
<
br
>
}<
br
>
}<
br
>
}