This is a migrated thread and some comments may be shown as answers.

Callback inside RadGrid

1 Answer 227 Views
Grid
This is a migrated thread and some comments may be shown as answers.
stonger
Top achievements
Rank 1
stonger asked on 25 Sep 2011, 06:27 PM

Hi,
I am trying to callback with image button inside radgrid <detailtables>. Server side code is executed but the control is not returned to javascript function that is receiving the results.
Can you help me?!

protected void Page_Load(object sender, EventArgs e)
        {      
               ClientScriptManager cm = Page.ClientScript;
                cbReference = cm.GetCallbackEventReference(this, "arg",
                    "ReceiveServerData", "", "errorData", false);
                String callbackScript = "function CallServer(arg, context) {" +
                    cbReference + "; WebForm_InitCallback(); }";
                cm.RegisterClientScriptBlock(this.GetType(),
                    "CallServer", callbackScript, true);
 
        }
public void RaiseCallbackEvent(String eventArgument)
        {
            //fetch some data
        }
   public string GetCallbackResult()
        {
            return strJSON;
        }

<telerik:RadAjaxPanel ID="RadAjaxPanel1" runat="server" EnableAJAX="False"
    HorizontalAlign="NotSet" LoadingPanelID="RadAjaxLoadingPanel1">
 
    <telerik:RadGrid ID="RadGrid1" runat="server" CellSpacing="0" GridLines="None" AllowAutomaticDeletes="True"
        AllowAutomaticInserts="True" AllowAutomaticUpdates="True" AllowFilteringByColumn="True"
        AllowPaging="True" DataSourceID="SqlDataSource1" ShowGroupPanel="True" AllowSorting="True"
        Skin="Office2010Blue" Height="100%" Width="100%" GroupLoadMode="Server" OnItemInserted="RadGrid1_ItemInserted"
        OnInsertCommand="RadGrid1_InsertCommand"
        OnItemCommand="RadGrid1_ItemCommand" onitemdatabound="RadGrid1_ItemDataBound">
...
 <DetailTables>
                <telerik:GridTableView Name="Detail" DataKeyNames="ExamID" AllowSorting="false" DataSourceID="SqlDataSource2"
                    Width="100%" PageSize="10" ShowHeader="False" RetrieveAllDataFields="false" runat="server"
                    CommandItemDisplay="Top" EditMode="EditForms" NoDetailRecordsText="No records to display."
                    AutoGenerateColumns="false" AllowAutomaticUpdates="true" AllowAutomaticDeletes="false"
                    AllowAutomaticInserts="false" CommandItemSettings-AddNewRecordText="New exam">
                    <ParentTableRelation>
                        <telerik:GridRelationFields DetailKeyField="CertificationID" MasterKeyField="CertificationID" />
                    </ParentTableRelation>
                    <AlternatingItemStyle />
                    <NoRecordsTemplate>
                        <asp:Label 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" />
                        <FormStyle Width="100%" BackColor="#eef2ea" />
                        <EditColumn ButtonType="ImageButton" CancelText="Cancel" UpdateText="Update" InsertText="Add" />
                    </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:GridTemplateColumn></telerik:GridTemplateColumn>
                        <%--<telerik:GridBoundColumn DataField="CertificationID" FilterControlAltText="Filter exam number column"
                            HeaderText="Certification ID" UniqueName="CertificationID" ReadOnly="true" />
                        <telerik:GridBoundColumn DataField="ExamID" FilterControlAltText="Filter exam number column"
                            HeaderText="Exam ID" UniqueName="ExamID" ReadOnly="true">
                        </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>
                            dsds
                                <asp:ImageButton BorderStyle="Solid" ID="ImageButton1" AlternateText="Delete4" runat="server" CommandName="Delete4"
                                ImageUrl="~/_layouts/Images/Delete.GIF" OnClientClick="ConfirmDelete;" />
                            </ItemTemplate>
                            <HeaderStyle Width="30px" />
                        </telerik:GridTemplateColumn>
                         <telerik:GridTemplateColumn UniqueName="ArrowColumn2">
                            <ItemTemplate>
                                <input type="button" id="buttondel" value="Callback" runat="server" onclick="CallServer(1,1);" />
                            </ItemTemplate>
                            <HeaderStyle Width="30px" />
                        </telerik:GridTemplateColumn>                       
                    </Columns>                  
                </telerik:GridTableView>
            </DetailTables>
function ReceiveServerData(arg, context) {
        var c = eval(arg);
        for (var i in c) {
            $("#ResultsTable2 tr:last").after("<tr><td>" + c[i][0] + " - " + c[i][1] + "</td><td>");
        }        
    }


Solved:

Problem was in String callbackScript = "function CallServer(arg, context) {" +
cbReference + "; WebForm_InitCallback(); }";

called after cbreference and not clearing

__theFormPostData and __theFormPostCollection viewstate variables.


Solution that worked for me:
ClientScriptManager cm = Page.ClientScript;
            cbReference = cm.GetCallbackEventReference(this, "arg",
                "ReceiveServerData", "", "errorData", false);
            String callbackScript = "function CallServer(arg, context) { __theFormPostData = ''; __theFormPostCollection = new Array(); WebForm_InitCallback();" +
                cbReference + "; }";

1 Answer, 1 is accepted

Sort by
0
Vasil
Telerik team
answered on 28 Sep 2011, 09:22 AM
Hello Drazen,

I am glad that you have solved the issue.

Additionally here is some more information that may help the others: http://www.telerik.com/help/aspnet-ajax/ajax-execute-custom-javascript.html

Best wishes,
Vasil
the Telerik team
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now
Tags
Grid
Asked by
stonger
Top achievements
Rank 1
Answers by
Vasil
Telerik team
Share this question
or