
Hi,
I have a radgrid (radGrd) with two column Name(Type:string) and Value(Type:Object). And I am binding List of Attribute class to my radgrid
Private class Attribute
{
public string Name{ get; set; }
public Object Value{ get; set; }
}
The Value object mentioned above can be of type string or Integer. In my case both filtering and sorting is working successfuly with Name column. However, it is fails in case of Value. Can you please tell me what is missing in my case which is causing this issue? Here is the code snippet of the Radgrid for your reference.
<telerik:radgrid id="radGrd" allowmultirowedit="false" cellpadding="0" cellspacing="0" runat="server" allowsorting="true" allowfilteringbycolumn="true" allowpaging="true" onneeddatasource="radGrd_NeedDataSource" onitemcommand="radGrd_ItemCommand" onitemcreated="radGrd_ItemCreated" onupdatecommand="radGrd_UpdateCommand" ondeletecommand="radGrd_DeleteCommand" enableheadercontextmenu="true" groupingenabled="false" enableheadercontextfiltermenu="true" enablelinqexpressions="false" onitemdatabound="radGrd_ItemDataBound"><MasterTableView AutoGenerateColumns="False" EditMode="InPlace" CommandItemDisplay="Bottom"PageSize="10" TableLayout="Fixed" CommandItemSettings-ShowAddNewRecordButton="false"CommandItemSettings-ShowRefreshButton="false" HeaderStyle-HorizontalAlign="Center"HeaderStyle-Font-Bold="true" AllowFilteringByColumn="True" EnableHeaderContextMenu="true"IsFilterItemExpanded="false"><NoRecordsTemplate>No records available</NoRecordsTemplate><PagerStyle HorizontalAlign="Right" Position="TopAndBottom" VerticalAlign="Middle"Mode="NextPrevAndNumeric" AlwaysVisible="true" PageButtonCount="5"></PagerStyle><Columns><telerik:GridBoundColumn DataField="Name" UniqueName="Name" HeaderText="Name" AllowFiltering="false" ItemStyle-HorizontalAlign="Left" ReadOnly="true" DataType="System.String" HeaderStyle-Width="90px"> </telerik:GridBoundColumn><telerik:GridTemplateColumn HeaderText="Value" DataField="Value"UniqueName="Value" ItemStyle-Width="40px" AutoPostBackOnFilter="true"HeaderStyle-Width="100px" ItemStyle-HorizontalAlign="Left" DataType="System.String"><ItemTemplate><asp:Label ID="lblAttVal" runat="server" Text='<%# Bind("Value") %>'Width="10px"></asp:Label></ItemTemplate><HeaderTemplate> <table> <tr> <td> <asp:LinkButton ID="Sort1" runat="server" CommandArgument="Value" CommandName="Sort" Text="Value"></asp:LinkButton> </td> <td> <img src="Images/fillter_icon.png" style="margin-top: 5px; margin-left: 5px; cursor: pointer" onclick='ShowColumnHeaderMenu(event,"Value")' alt="" /> </td> </tr> </table> </HeaderTemplate><EditItemTemplate><asp:TextBox ID="txtValue" runat="server" Text='<%# Bind("Value") %>'Width="82px"></asp:TextBox></EditItemTemplate></telerik:GridTemplateColumn></Columns> </MasterTableView><ClientSettings><Scrolling AllowScroll="True" ScrollHeight="300px" UseStaticHeaders="true"></Scrolling></ClientSettings></telerik:radgrid>
<telerik:RadGrid ID="TerritoriesRadGrid" runat="server" AutoGenerateColumns="false" AllowPaging="true" OnNeedDataSource="TerritoriesRadGrid_NeedDataSource" OnItemCommand="TerritoriesRadGrid_ItemCommand"> <GroupingSettings CaseSensitive="False" /> <ExportSettings HideStructureColumns="true" FileName="Territories" Excel-Format="Biff" OpenInNewWindow="false" Excel-FileExtension="xls" IgnorePaging="true" ExportOnlyData="false" /> <MasterTableView EditMode="PopUp" AllowFilteringByColumn="true" AllowSorting="true" CommandItemDisplay="Top"> <CommandItemSettings ShowExportToExcelButton="true" ExportToExcelText="Export to Excel" ShowAddNewRecordButton="false" /> <Columns> <telerik:GridBoundColumn DataField="TerritoryDisplay" HeaderText="Territory" HeaderStyle-Width="5em"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SalesPersonRacfId" HeaderText="Sales Person RACF ID"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SalesPersonFullName" HeaderText="Sales Person Name"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SalesPersonPositionName" HeaderText="Sales Person Job Title"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SalesPersonOrgUnitLevel1" HeaderText="Sales Person Org Unit Level 1"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SalesPersonOrgUnitLevel2" HeaderText="Sales Person Org Unit Level 2"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="SalesPersonOrgUnitLevel3" HeaderText="Sales Person Org Unit Level 3"> </telerik:GridBoundColumn> /Columns> </MasterTableView> </telerik:RadGrid>
$find("<%= RadGrid1.ClientID %>") returning null on callback, when I want to refresh RadGrid control.
Onclick registration for ImageButton inside DetailTables (inside RadGrid)
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem && e.Item.OwnerTableView.Name == "Detail")
{
GridDataItem item = (GridDataItem)e.Item;
ImageButton deleteBtn = (ImageButton)item["ArrowColumn2"].Controls[1];
string onclick = deleteBtn.Attributes["OnClick"];
deleteBtn.Attributes.Clear();
deleteBtn.Attributes.Add("OnClick", "ConfirmDelete(this," + item["ExamID"].Text + ", 'DeleteExam','" + item["Name"].Text.ToString() + "'); return false;");
}
}
ConfirmDelete:
function ConfirmDelete(sender, rowindex, arg, arg2) {
postbackdugme = sender;
CallServer(arg + '*' + rowindex);
return false;
}
Callback registration:
ClientScriptManager cm = Page.ClientScript;
cbReference = cm.GetCallbackEventReference(this, "arg",
"ReceiveServerData", "", "errorData", true);
String callbackScript = "function CallServer(arg, context) { __theFormPostData = ''; __theFormPostCollection = new Array(); WebForm_InitCallback(); " +
cbReference + "; }";
cm.RegisterClientScriptBlock(this.GetType(),
"CallServer", callbackScript, true);
Callback Receive function
function ReceiveServerData(arg, context) {
if (arg.substr(0, 5) == 'Error') {
radalert("<h3 style='color: #ff0000;'><strong>" + arg + " </strong> </h3>", null, null, "Result");
}
radalert("<h3 style='color: #ff0000;'><strong>" + arg + " </strong> </h3>", null, null, "closeRadWindow");
var masterTable = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
masterTable.rebind();
var detailTablesArray = $find("<%= RadGrid1.ClientID %>").get_detailTables();
detailTablesArray[0].rebind();
}
RadGrid
<telerik:RadGrid ID="RadGrid1" runat="server" CellSpacing="0" GridLines="None" AllowAutomaticDeletes="True"
AllowAutomaticInserts="True" AllowAutomaticUpdates="True" AllowPaging="True"
DataSourceID="SqlDataSource1" AllowSorting="True" Skin="Office2010Blue"
Height="100%" Width="100%" OnItemInserted="RadGrid1_ItemInserted" OnItemCommand="RadGrid1_ItemCommand"
OnItemDataBound="RadGrid1_ItemDataBound">
<MasterTableView AutoGenerateColumns="False" DataKeyNames="CertificationID" DataSourceID="SqlDataSource1"
CommandItemDisplay="TopAndBottom" EditMode="EditForms">
<CommandItemSettings ExportToPdfText="Export to PDF" />
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
</RowIndicatorColumn>
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
</ExpandCollapseColumn>
<Columns>
<telerik:GridEditCommandColumn ButtonType="LinkButton">
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn DataField="CertificationID" DataType="System.Int32" FilterControlAltText="Filter CertificationID column"
HeaderText="CertificationID" ReadOnly="True">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="CertificationNameShort" FilterControlAltText="Filter CertificationNameShort column"
HeaderText="CertificationNameShort" SortExpression="CertificationNameShort" UniqueName="CertificationNameShort">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="CertificationNameLong" FilterControlAltText="Filter CertificationNameLong column"
HeaderText="CertificationNameLong" SortExpression="CertificationNameLong" UniqueName="CertificationNameLong">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ExamsInCertification" DataType="System.Int32"
FilterControlAltText="Filter ExamsInCertification column" HeaderText="ExamsInCertification"
SortExpression="ExamsInCertification" UniqueName="ExamsInCertification" ReadOnly="true">
</telerik:GridBoundColumn>
</Columns>
<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column">
</EditColumn>
</EditFormSettings>
<DetailTables>
<telerik:GridTableView Name="Detail" DataKeyNames="ExamID" AllowSorting="false" DataSourceID="SqlDataSource2"
Width="100%" PageSize="10" RetrieveAllDataFields="false" runat="server"
CommandItemDisplay="Top" EditMode="PopUp" NoDetailRecordsText="No records to display."
AutoGenerateColumns="false" AllowAutomaticUpdates="True" AllowAutomaticDeletes="false"
AllowAutomaticInserts="true"
CommandItemSettings-AddNewRecordText="New exam">
<ParentTableRelation>
<telerik:GridRelationFields DetailKeyField="CertificationID" MasterKeyField="CertificationID" />
</ParentTableRelation>
<AlternatingItemStyle />
<NoRecordsTemplate>
<asp:Label ID="Label1" runat="server" Text="No records."></asp:Label>
</NoRecordsTemplate>
<EditFormSettings ColumnNumber="1" CaptionDataField="Exam" InsertCaption="New exam"
CaptionFormatString="Edit properties of exam {0}">
<FormTableItemStyle Width="100%" Height="29px" />
<FormTableStyle GridLines="None" CellPadding="2" CellSpacing="0" />
<EditColumn UniqueName="EditCommandColumn1" FilterControlAltText="Filter EditCommandColumn1 column"></EditColumn>
<FormStyle Width="100%" BackColor="#eef2ea" />
<FormTemplate>
<telerik:RadTextBox ID="RadTextBox1" runat="server" Text='<%# Bind("Exam") %>' Font-Names="Verdana"
Font-Size="Small" Width="100%">
</telerik:RadTextBox>
<asp:Button runat="server" Text="test" />
<telerik:RadTextBox ID="radTxtCssValue" runat="server" Text='<%# Bind("Name") %>'
Font-Names="Verdana" Font-Size="Small" Width="100%">
</telerik:RadTextBox>
<asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>' />
</FormTemplate>
</EditFormSettings>
<CommandItemSettings AddNewRecordText="New exam" ExportToPdfText="Export to PDF" />
<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
</RowIndicatorColumn>
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
</ExpandCollapseColumn>
<Columns>
<telerik:GridEditCommandColumn ButtonType="LinkButton" ItemStyle-Width="50px" UniqueName="EditCommandColumn">
<ItemStyle Width="50px" />
</telerik:GridEditCommandColumn>
<%-- <telerik:GridButtonColumn ButtonType="ImageButton" CommandName="Delete" Text="Delete2"
UniqueName="DeleteColumn">
</telerik:GridButtonColumn>--%>
<telerik:GridBoundColumn DataField="CertificationID" FilterControlAltText="Filter exam number column"
HeaderText="Certification ID" UniqueName="CertificationID" ReadOnly="true" Visible="false" />
<telerik:GridBoundColumn DataField="ExamID" FilterControlAltText="Filter exam number column"
HeaderText="Exam ID" UniqueName="ExamID" ReadOnly="true" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Exam" DataType="System.String" FilterControlAltText="Filter exam number column"
HeaderText="Exam number" UniqueName="Exam">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Name" FilterControlAltText="Filter Name column"
HeaderText="Exam name" UniqueName="Name">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn UniqueName="ArrowColumn">
<ItemTemplate>
<asp:ImageButton BorderStyle="Solid" ID="ImageButton1" AlternateText="Delete4" runat="server"
CommandName="Delete4" ImageUrl="~/_layouts/Images/Delete.GIF" OnClientClick="showmodal(this);" />
</ItemTemplate>
<HeaderStyle Width="30px" />
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="ArrowColumn2">
<ItemTemplate>
<asp:ImageButton BorderStyle="Solid" ID="ImageButton2" AlternateText="Delete4" runat="server"
CommandName="Delete4" ImageUrl="~/_layouts/Images/Delete.GIF" />
</ItemTemplate>
<HeaderStyle Width="30px" />
</telerik:GridTemplateColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
</MasterTableView>
<SelectedItemStyle BackColor="#66CCFF" />
<FilterMenu EnableImageSprites="False">
</FilterMenu>
<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">
</HeaderContextMenu>
</telerik:RadGrid>
Callback works fine: in code behind record are deleted and
ReceiveServerData is executed but it breaks on var mastertable = $find(%= RadGrid1.ClientID %>").get_masterTableView(); - cannot find RadGrid1 control, it is null
Help?
