If we add a value to a RadComboBoxItem attribute, we can always read it from the client side by saying
Can we do something similar for grid? During the ItemDataBound, I want to add attribute to each DataItem and read it when a row is selected and deselected clientside.
Thanks.
var value = combo.get_selectedItem().get_attributes().getAttribute('MyAttribute');Can we do something similar for grid? During the ItemDataBound, I want to add attribute to each DataItem and read it when a row is selected and deselected clientside.
Thanks.
4 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 20 Oct 2011, 06:20 AM
Hello Baal,
I am not sure from where you are trying to access the attributes value. Here is the sample code for setting the custom attributes in ItemDataBound event.
C#:
If you are using any built-in client events of RadComboBox, then you can access the attribute value with the sender and the arguments ( the default parameters). Here is a sample code.
Javascript:
If you are accessing form any other control event you need to try the following approach.
Custom Attributes.
Thanks,
Princy.
I am not sure from where you are trying to access the attributes value. Here is the sample code for setting the custom attributes in ItemDataBound event.
C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e){ if (e.Item is GridDataItem) { GridDataItem item = (GridDataItem)e.Item; RadComboBox combo = (RadComboBox)item.FindControl("combo"); foreach (RadComboBoxItem item1 in combo.Items) { item1.Attributes["Asia"] = "4"; } }}Javascript:
function OnClientSelectedIndexChanged(sender,args){ var item = args.get_item(); alert(item.get_attributes().getAttribute("Asia"));}Custom Attributes.
Thanks,
Princy.
0
Baal
Top achievements
Rank 1
answered on 20 Oct 2011, 04:44 PM
I'm sorry, I didn't explain it clearly. Combobox attributes aren't an issue. I put that in as an example. I need to read gridItem attribute similar to how we read comboboxItem attribute.
Here's what I have in my grid ItemDataBound.
On Grid->ClientSettings->ClientEvents->OnRowSelecting, I have a client function RowSelecting. This is what I want to do.
Also, another extension will be to check from some other control's event handler.
I checked the RadGrid documentation at
http://www.telerik.com/help/aspnet-ajax/grid-getting-familiar-with-client-side-api.html
and didn't find anything under client-side programming that shows how to read the gridItem attribute.
Thanks.
Here's what I have in my grid ItemDataBound.
protected void rg_ItemDataBound (object sender, GridItemEventArgs e){ if (e.Item is GridDataItem) { var obj = (MyObject) e.Item.DataItem; if (obj.IsActive) e.Item.Attributes["Active"] = "1"; else { e.Item.ForeColor = Color.Red; e.Item.Attributes["Active"] = "0"; } }}On Grid->ClientSettings->ClientEvents->OnRowSelecting, I have a client function RowSelecting. This is what I want to do.
function RowSelecting (sender, e){ // Pseudo-code. This is what I want to do. var isActive = e.get_Attributes().getAttribute('Active'); if (isActive == '0') { var isGood = confirm ('This record is inactive. Select anyway?'); if (!isGood) e.set_cancel (true); }}Also, another extension will be to check from some other control's event handler.
function ibEdit_ClientClick (){ var masterTableView = $find('<%= rg.ClientID %>').get_masterTableView(); var items = masterTableView.get_selectedItems(); // Pseudo-code. This is what I want to do. var isGood = true; for (var i=0; i<items.length; i++) { var item = items[i]; var isActive = item.get_Attributes().getAttribute('IsActive'); if (isActive == '0') isGood = false; } if (!isGood) isGood = confirm ('Inactive records are selected. Proceed anyway?'); return isGood; // now server-side code can continue if isGood==true}I checked the RadGrid documentation at
http://www.telerik.com/help/aspnet-ajax/grid-getting-familiar-with-client-side-api.html
and didn't find anything under client-side programming that shows how to read the gridItem attribute.
Thanks.
0
Shinu
Top achievements
Rank 2
answered on 21 Oct 2011, 07:52 AM
Hello Baal,
Here is the sample code to access the attribute value from client side.
javascript:
Thanks,
Shinu.
Here is the sample code to access the attribute value from client side.
javascript:
<script type="text/javascript"> function RowSelecting(sender, e) { var isActive = e.get_gridDataItem().get_element().getAttribute("Active") . . . . . }Thanks,
Shinu.
0
Baal
Top achievements
Rank 1
answered on 24 Oct 2011, 05:15 PM
Thank you Shinu. This code works beautifully.
Can you please add this getAttribute to the RadGrid documentation.
Thanks.
Can you please add this getAttribute to the RadGrid documentation.
Thanks.