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

Radwindow on Link button event

5 Answers 369 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Neetha
Top achievements
Rank 1
Neetha asked on 23 Apr 2014, 09:36 PM
I have a Link button in rad grid template column, on clicking on link i should get a radpopup window. Tried on the clientside not working then tried on server side too .. no luck.
server side event:
 <telerik:GridTemplateColumn UniqueName="MetricGroup" DataField="MetricGroup">
                    <ItemTemplate>                         
                         <asp:LinkButton ID="lnkMetricGroup" runat="server"  OnClick="lnkMetricGroup_Click"
                                Text='<%# DataBinder.Eval(Container.DataItem,"MetricGroup") %>'></asp:LinkButton>   
               
                    </ItemTemplate>
      protected void lnkMetricGroup_Click(object sender, EventArgs e)
        {
            string name = "";
            LinkButton btn = (LinkButton)sender;
            name = btn.Text;               
            String url = "SalesActivity.aspx?MetricGroup=" + name;
            UserListDialog.NavigateUrl = url;
         }  

 <telerik:RadWindowManager ID="RadWindowManager1" runat="server" EnableShadow="true">
        <Windows>
            <telerik:RadWindow ID="UserListDialog" runat="server" Title="Details" Height="320px"
                Width="310px" Left="150px" ReloadOnShow="true" ShowContentDuringLoad="false"
                Modal="true">
            </telerik:RadWindow>
        </Windows>
    </telerik:RadWindowManager>


Please let me know on how to proceed on this.

Thanks.

5 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 24 Apr 2014, 06:07 AM
Hi Neetha,

Please try the following code snippet to open window on a LinkButton.

ASPX:
<asp:LinkButton ID="lnkMetricGroup" runat="server" OnClientClick="return OpenWindow();"
Text='<%# DataBinder.Eval(Container.DataItem,"MetricGroup") %>' ></asp:LinkButton>

JS:
<script type="text/javascript">
    function OpenWindow() {
        var win = $find("<%=UserListDialog.ClientID %>");
        win.show();
        return false;
    }
</script>

Thanks,
Princy
0
Neetha
Top achievements
Rank 1
answered on 24 Apr 2014, 03:00 PM
This is not working, page just reloads when i click on link button, I supplied URL to it but no luck.

Anyways i got it working through code behind.. Thanks.
 
protected void lnkMetricGroup_Click(object sender, EventArgs e)
        {
            string name = "";
            LinkButton btn = (LinkButton)sender;
            name = btn.Text;               
          
           String url = "SalesActivity.aspx?MetricGroup=" + name;
           RadWindow window1 = new RadWindow();
           window1.NavigateUrl = url;
           window1.VisibleOnPageLoad = true;
           window1.ID = "RadWindow1";
           window1.Width = 500;
           window1.Height = 300;
           RadWindowManager1.Windows.Add(window1);

          
        }
0
Neetha
Top achievements
Rank 1
answered on 24 Apr 2014, 10:31 PM
Hi Princy,

I got it working with above code but when i added AjaxManager only first click on the first row is working and rad window comes u fine but not for remaining. Here is my code:
 <telerik:RadWindowManager ID="RadWindowManager1" runat="server">
    </telerik:RadWindowManager>

<AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="lnkMetricGroup">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" LoadingPanelID="LoadingPanel1"></telerik:AjaxUpdatedControl>                      
                </UpdatedControls>
            </telerik:AjaxSetting>     
        </AjaxSettings>

<telerik:GridTemplateColumn UniqueName="MetricGroup" DataField="MetricGroup" HeaderText="Metric Group" HeaderStyle-Font-Bold="true" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center">
                        <ItemTemplate>                        

                            <asp:LinkButton ID="lnkMetricGroup" runat="server" OnClick="lnkMetricGroup_Click"
                                Text='<%# DataBinder.Eval(Container.DataItem,"MetricGroup") %>'></asp:LinkButton>
                           

                        </ItemTemplate>
                    </telerik:GridTemplateColumn>

  protected void lnkMetricGroup_Click(object sender, EventArgs e)
        {

            string name = "";
            LinkButton btn = (LinkButton)sender;
            name = btn.Text;
            String url = "SalesActivity.aspx?MetricGroup=" + name;
            RadWindow window1 = new RadWindow();
            window1.NavigateUrl = url;
            RadWindowManager1.EnableViewState = false;
            window1.Modal = true;          
            window1.ReloadOnShow = false;           
            window1.VisibleOnPageLoad = true;
            window1.ID = "RadWindow1";
            window1.Width = 500;
            window1.Height = 300;
            RadWindowManager1.Windows.Add(window1);
            window1.DestroyOnClose = true;
        }

Please let me know what is wrong here? Thanks.


0
Accepted
Princy
Top achievements
Rank 2
answered on 25 Apr 2014, 07:19 AM
Hi Neetha,

Since you are using server code to open the window it requires a call to the server side hence, we cant have the Ajax set to the button alone. You can ajaxify the grid as shown below. If you do not want postabck during the opening of window you have to open window from clientside.

ASPX:
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadGrid1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="gridLoadingPanel" />
                <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" LoadingPanelID="gridLoadingPanel">
                </telerik:AjaxUpdatedControl>
            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadAjaxLoadingPanel runat="server" ID="gridLoadingPanel">
</telerik:RadAjaxLoadingPanel>

Thanks,
Princy
0
Arun
Top achievements
Rank 1
answered on 28 Jul 2017, 05:57 AM

hey Princy,

Please tell me that why did you write return in OnClientClick event ?

<asp:LinkButton ID="lnkMetricGroup" runat="server" OnClientClick="return OpenWindow();"
Text='<%# DataBinder.Eval(Container.DataItem,"MetricGroup") %>' ></asp:LinkButton>

 

Tags
Grid
Asked by
Neetha
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Neetha
Top achievements
Rank 1
Arun
Top achievements
Rank 1
Share this question
or