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

Need Help Javascript + Server side code

1 Answer 77 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Rahul
Top achievements
Rank 1
Rahul asked on 07 Jan 2011, 02:18 PM
<telerik:GridTemplateColumn DataField="DelFlag" HeaderText="Status" SortExpression="DelFlag"
                            HeaderStyle-HorizontalAlign="Center" UniqueName="DelFlag" Visible="true" AllowFiltering="false">
                            <ItemTemplate>
                                <asp:Button ID="btnStatus" Font-Size="11px" Width="65px" runat="server" Text='<%#Eval("DelFlag")%>'
                                    OnClientClick="javascript:return confirm('Are you sure want to update status !!?')"
                                    CommandName="Command" />
                            </ItemTemplate>
                            <ItemStyle VerticalAlign="Middle" HorizontalAlign="Center" />
                        </telerik:GridTemplateColumn>


and following code on serverside .cs fle
 else if (e.CommandName == "Command")
            {
                GridDataItem item = (GridDataItem)e.Item;
                Button btnStatus = (Button)e.CommandSource;
                if (btnStatus.Text == "Deactivate")
                {
                    btnStatus.Text = "Activate";
                    string gameGID = Convert.ToString(((Label)item.FindControl("lblGameGID")).Text);
                    string delflag = "Y";
                    ds.UpdateCommand = "UPDATE tblGame SET DelFlag = '" + delflag + "' WHERE GameGID = '" + gameGID + "'";
                    ds.Update();
                    grdGameInfo.DataSource = ds;
                    grdGameInfo.DataBind();
                    grdGameInfo.Rebind();
                }
                else
                {
                    
                    btnStatus.Text = "Deactivate";
                    string gameGID = Convert.ToString(((Label)item.FindControl("lblGameGID")).Text);
                    string delflag = "N";
                    ds.UpdateCommand = "UPDATE tblGame SET DelFlag = '" + delflag + "' WHERE GameGID = '" + gameGID + "'";
                    ds.Update();
                    grdGameInfo.DataSource = ds;
                    grdGameInfo.DataBind();
                    grdGameInfo.Rebind();
                }


this will work if rad AJAX managar not on page.. If i put rad ajax .. the above scrip not working. It's only show alert message.. but server side event does not call. Please help how to call need urgent.

1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 10 Jan 2011, 09:45 AM
Hello Rahul,

On suggestion is to use GridButtonColumn instead of GridTemplateColumn and set its DataTextField to corresponding field name. And you can set its CommandName and ConfirmText property like below.

ASPX:
<telerik:GridButtonColumn CommandName="Command" DataTextField="DelFlag" ButtonType="PushButton"
         UniqueName="btnStatus" ConfirmText="Are you sure want to update status !!?">
</telerik:GridButtonColumn>

Another option is attaching 'onclick' client event from code behind and invoking the ajaxRequest from client event handler. You can pass the Item index as parameter of ajaxRequest. In AjaxManager_AjaxRequest server event, call the FireCommandEvent with appropriate CommandName. Sample code is given below.

ASPX:
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadGrid1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" />
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
 
<telerik:RadGrid ID="RadGrid1" runat="server" OnItemCommand="RadGrid1_ItemCommand" OnItemCreated="RadGrid1_ItemCreated" >
    <MasterTableView>
        <Columns>
            <telerik:GridTemplateColumn DataField="DelFlag" HeaderText="Status" SortExpression="DelFlag"
                HeaderStyle-HorizontalAlign="Center" UniqueName="DelFlag" Visible="true" AllowFiltering="false">
                <ItemTemplate>
                    <asp:Button ID="btnStatus" Font-Size="11px" Width="65px" runat="server" Text='<%#Eval("DelFlag")%>'
                        CommandName="Command" />
                </ItemTemplate>
                <ItemStyle VerticalAlign="Middle" HorizontalAlign="Center" />
            </telerik:GridTemplateColumn>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

Attaching 'onclick' client event from code behind by passing item index to event handler.
C#:
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            GridDataItem item = (GridDataItem)e.Item;
            Button btn = (Button)item.FindControl("btnStatus");
            btn.Attributes.Add("onclick", "return clickbtn('"+item.ItemIndex+"');");
        }
    }

Java Script:
<script type="text/javascript">
       function clickbtn(index) {
           confirm('Are you sure want to update status !!?');
           $find("<%=RadAjaxManager1.ClientID%>").ajaxRequest(index);
       
   </script>

C#:
protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
    {
        GridDataItem item = (GridDataItem)RadGrid1.Items[e.Argument];
        item.FireCommandEvent("Command", String.Empty);
    }


Thanks,
Princy.
Tags
Grid
Asked by
Rahul
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Share this question
or