Bruce McCulloch
Top achievements
Rank 1
Bruce McCulloch
asked on 24 May 2010, 08:15 PM
I have a RadGrid being populated from a SQL stored proc and have set the OnRowClick event to properly show the value in an alert box...I need to know how to pass this value back to my vb.net code behind to show in a label or to use for a second query (such as customer details).
Again, I do not want a post back as I just want the label to reload or an Ajax panel.
Here is the code to handle the OnRowClick event:
Thanks in advance for your help!
Bruce
Again, I do not want a post back as I just want the label to reload or an Ajax panel.
Here is the code to handle the OnRowClick event:
function custClicked(sender, args) { |
var grid = sender; |
var MasterTable = grid.get_masterTableView(); |
var row = MasterTable.get_dataItems()[args.get_itemIndexHierarchical()]; |
var cell = MasterTable.getCellByColumnUniqueName(row, "COMPANY"); |
alert(cell.innerHTML); |
} |
Bruce
3 Answers, 1 is accepted
0
Shinu
Top achievements
Rank 2
answered on 25 May 2010, 06:38 AM
Hello Bruce,
There are two possible ways to accomplish the functionality without page refresh.
#1:
Invoke ajaxRequest() from client side and pass the cell value as parameter. Also set the AjaxSettings accordingly.
ASPX:
Java Script:
VB.Net:
#2:
The other method is to access the label from clientside and set the cell value from there.
Java Script:
Hope these suggestions help,
Cheers,
Shinu.
There are two possible ways to accomplish the functionality without page refresh.
#1:
Invoke ajaxRequest() from client side and pass the cell value as parameter. Also set the AjaxSettings accordingly.
ASPX:
<telerik:RadAjaxManager ID="RadAjaxManager1" EnableAJAX="true" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest"> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="RadGrid1" /> |
</UpdatedControls> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="Label1" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
Java Script:
function RowClick(sender, eventArgs) |
{ |
var grid = sender; |
var MasterTable = grid.get_masterTableView(); |
var row = MasterTable.get_dataItems()[eventArgs.get_itemIndexHierarchical()]; |
var cell = MasterTable.getCellByColumnUniqueName(row, "ColumnUniqueName"); |
$find("<%=RadAjaxManager1.ClientID%>").ajaxRequest(cell.innerHTML); |
} |
VB.Net:
Protected Sub RadAjaxManager1_AjaxRequest(ByVal sender As Object, ByVal e As AjaxRequestEventArgs) |
Label1.Text = e.Argument |
End Sub |
#2:
The other method is to access the label from clientside and set the cell value from there.
Java Script:
function RowClick(sender, eventArgs) |
{ |
var grid = sender; |
var MasterTable = grid.get_masterTableView(); |
var row = MasterTable.get_dataItems()[eventArgs.get_itemIndexHierarchical()]; |
var cell = MasterTable.getCellByColumnUniqueName(row, "FirstName"); |
var label = document.getElementById("Label1");//access the control |
label.innerHTML = cell.innerHTML;//set the cell value |
} |
Hope these suggestions help,
Cheers,
Shinu.
0
Bruce McCulloch
Top achievements
Rank 1
answered on 25 May 2010, 02:05 PM
Shinu,
Thank you for the reply, however, neither option is working...
When I try solution 1 I get an error:
Microsoft JScript runtime error: 'null' is null or not an object
this happens on: $find("<%=RadAjaxManager1.ClientID%>").ajaxRequest(cell.innerHTML);
Here is my full code:
VB
VB Code Behind:
JS:
When I try option 2 just through JS, I get the same error on:
label.innerHTML = cell.innerHTML;
This is driving me nuts...no idea why this wont work for me. Any help is greatly appreciated!
Thanks,
Bruce
Thank you for the reply, however, neither option is working...
When I try solution 1 I get an error:
Microsoft JScript runtime error: 'null' is null or not an object
this happens on: $find("<%=RadAjaxManager1.ClientID%>").ajaxRequest(cell.innerHTML);
Here is my full code:
VB
<telerik:RadAjaxManager ID="RadAjaxManager1" EnableAJAX="true" runat="server" OnAjaxRequest="RadAjaxManager1_AjaxRequest"> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="RadGrid1" /> |
</UpdatedControls> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="Label1" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" |
DataSourceID="customerDS" GridLines="None"> |
<ClientSettings> |
<Selecting AllowRowSelect="True" /> |
<ClientEvents OnRowClick="RowClick" /> |
</ClientSettings> |
<MasterTableView DataSourceID="customerDS" AutoGenerateColumns="False"> |
<RowIndicatorColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</RowIndicatorColumn> |
<ExpandCollapseColumn> |
<HeaderStyle Width="20px"></HeaderStyle> |
</ExpandCollapseColumn> |
<Columns> |
<telerik:GridBoundColumn DataField="Company" DefaultInsertValue="" |
HeaderText="Company" SortExpression="Company" UniqueName="Company"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="GP #" DefaultInsertValue="" |
HeaderText="GP #" SortExpression="GP #" UniqueName="GP #"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="CRMTYPE" DefaultInsertValue="" |
HeaderText="CRMTYPE" SortExpression="CRMTYPE" UniqueName="CRMTYPE"> |
</telerik:GridBoundColumn> |
</Columns> |
</MasterTableView> |
</telerik:RadGrid> |
<asp:SqlDataSource ID="customerDS" runat="server" |
ConnectionString="<%$ ConnectionStrings:cpdbconn %>" |
SelectCommand="SELECT Company, [GP #], CRMTYPE FROM vwMainCRMRecords WHERE ([Rep ID] = @Rep_ID) ORDER BY Company"> |
<SelectParameters> |
<asp:SessionParameter Name="Rep_ID" SessionField="CurRepID" Type="String" /> |
</SelectParameters> |
</asp:SqlDataSource> |
<br /> |
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> |
Protected Sub RadAjaxManager1_AjaxRequest(ByVal sender As Object, ByVal e As AjaxRequestEventArgs) |
Label1.Text = e.Argument |
End Sub |
function RowClick(sender, eventArgs) { |
var grid = sender; |
var MasterTable = grid.get_masterTableView(); |
var row = MasterTable.get_dataItems()[eventArgs.get_itemIndexHierarchical()]; |
var cell = MasterTable.getCellByColumnUniqueName(row, "Company"); |
$find("<%=RadAjaxManager1.ClientID%>").ajaxRequest(cell.innerHTML); |
} |
When I try option 2 just through JS, I get the same error on:
label.innerHTML = cell.innerHTML;
This is driving me nuts...no idea why this wont work for me. Any help is greatly appreciated!
Thanks,
Bruce
0
Bruce McCulloch
Top achievements
Rank 1
answered on 25 May 2010, 02:52 PM
Nevermind Shinu,
I found the issue...I am using a Master page and my JS was in the wrong place... :(
Both of your solutions work now....MANY THANKS!
Bruce
I found the issue...I am using a Master page and my JS was in the wrong place... :(
Both of your solutions work now....MANY THANKS!
Bruce