I need to find the row index of a radButton clicked inside a Hierarchical grid. When the user clicks the radButton, the row of which the button is located will get selected so that a context menu can then be built depending on the row selected.
Heres my function
function BuildDetailRowContextMenu(sender, args) {
var grid = $find("<%=rgDetail.ClientID%>").get_masterTableView();
var gridSelectedItems = grid.get_selectedItems();
var rowIndex = sender.get_element().parentNode.parentNode.rowIndex;
var sectionRowIndex = sender.get_element().parentNode.parentNode.sectionRowIndex;
var test = args.get_itemIndexHierarchical();
grid.selectItem(grid.get_dataItems()[1].get_element(), true);
var selectedRow = grid.get_selectedItems()[0];
var QuoteDetailID = grid.getCellByColumnUniqueName(selectedRow, "QuoteDetailID").innerHTML;
var Suggested = grid.getCellByColumnUniqueName(selectedRow, "Suggested").getElementsByTagName("input")[0].checked;
var menu = $find("<%=menuDetail.ClientID%>");
if (Suggested)
menu.findItemByValue("Suggest").set_text("Un-Suggest");
else
menu.findItemByValue("Suggest").set_text("Suggest");
if (grid.getCellByColumnUniqueName(selectedRow, "ChangeQuantity").innerHTML == "true") {
menu.findItemByValue("Quantity").show();
if (Suggested)
menu.findItemByValue("SuggestedQuantity").hide();
else
menu.findItemByValue("SuggestedQuantity").show();
}
else {
menu.findItemByValue("Quantity").hide();
menu.findItemByValue("SuggestedQuantity").hide();
}
if (grid.getCellByColumnUniqueName(selectedRow, "ChangePrice").innerHTML == "true") {
menu.findItemByValue("Price").show();
menu.findItemByValue("PriceType").show();
}
else {
menu.findItemByValue("Price").hide();
menu.findItemByValue("PriceType").hide();
}
Here is the markup:
<ic:SmartGrid ID="rgDetail" runat="server" Skin="Windows7" CellSpacing="0" GridLines="none" ShowHeader="True"
AutoGenerateColumns="false" ItemStyle-VerticalAlign="Top" AlternatingItemStyle-VerticalAlign="Top">
<MasterTableView CommandItemDisplay="None" HierarchyLoadMode="ServerBind" DataKeyNames="QuoteDetailID" Name="Detail">
<GroupByExpressions>
<telerik:GridGroupByExpression>
<SelectFields>
<telerik:GridGroupByField FieldName="ModelName" />
</SelectFields>
<GroupByFields>
<telerik:GridGroupByField FieldName="ModelSortOrder"></telerik:GridGroupByField>
</GroupByFields>
</telerik:GridGroupByExpression>
</GroupByExpressions>
<Columns>
<telerik:GridTemplateColumn ItemStyle-Width="18">
<ItemTemplate>
<telerik:RadButton EnableSplitButton="true" ID="SplitButton" AutoPostBack="false"
runat="server" Text="" OnClientClicked="BuildDetailRowContextMenu" >
<Image ImageUrl="~/images/icons/cog.png" IsBackgroundImage="true"/>
</telerik:RadButton>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<DetailTables>
<telerik:GridTableView runat="server" Name="Components" AllowFilteringByColumn="False" Caption="Components" DataKeyNames="ParentID">
<Columns>
<telerik:GridTemplateColumn ItemStyle-Width="18">
<ItemTemplate>
<telerik:RadButton EnableSplitButton="true" ID="SplitButton" AutoPostBack="false"
runat="server" Text="" Image-ImageUrl="~/images/icons/cog.png" Image-IsBackgroundImage="true" OnClientClicked="BuildDetailRowContextMenu" >
</telerik:RadButton>
</ItemTemplate>
</telerik:GridTemplateColumn>
<%--<telerik:GridTemplateColumn ItemStyle-Width="18">
<ItemTemplate>
<telerik:RadButton EnableSplitButton="true" ID="SplitButton" AutoPostBack="false"
runat="server" Text="" Image-ImageUrl="~/images/icons/cog.png" OnClientClicked="BuildDetailRowContextMenu" >
</telerik:RadButton>
</ItemTemplate>
</telerik:GridTemplateColumn>--%>
</Columns>
</telerik:GridTableView>
</DetailTables>
</MasterTableView>
<ClientSettings Selecting-AllowRowSelect="true" ClientEvents-OnRowContextMenu="DetailRowContextMenu"/>
</ic:SmartGrid>
Any help would be greatly appreciated!!!
I'm using the following SqlDataSource to populate a RadGrid and it works as expected:
SqlDataSource sdsRgVens =
new
SqlDataSource();
sdsRgVens.ID =
"sdsRgVens"
;
this
.Page.Controls.Add(sdsRgVens);
sdsRgVens.DataSourceMode = SqlDataSourceMode.DataSet;
sdsRgVens.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[
"drappConnectionString"
].ConnectionString;
sdsRgVens.SelectCommand =
"SELECT venIdPk, venNm, venCity, venStateAcro, venZipCode FROM vendors"
;
rgVens.DataSource = sdsRgVens;
rgVens.DataBind();
Here's the code for the RadGrid:
<
telerik:RadGrid
ID
=
"rgVens"
runat
=
"server"
AutoGenerateColumns
=
"False"
AllowPaging
=
"True"
AllowSorting
=
"True"
AllowFilteringByColumn
=
"True"
ShowGroupPanel
=
"True"
OnPreRender
=
"rgVens_PreRender"
OnItemCommand
=
"rgVens_ItemCommand"
>
<
ClientSettings
AllowDragToGroup
=
"True"
AllowColumnsReorder
=
"True"
ReorderColumnsOnClient
=
"True"
></
ClientSettings
>
<
MasterTableView
DataKeyNames
=
"venIdPk"
PagerStyle-AlwaysVisible
=
"true"
>
<
Columns
>
<
telerik:GridButtonColumn
CommandName
=
"Select"
Text
=
"Select"
ButtonType
=
"LinkButton"
></
telerik:GridButtonColumn
>
<
telerik:GridBoundColumn
DataField
=
"venIdPk"
ReadOnly
=
"True"
HeaderText
=
"venIdPk"
SortExpression
=
"venIdPk"
UniqueName
=
"venIdPk"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter venIdPk column"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"venNm"
HeaderText
=
"Name"
SortExpression
=
"venNm"
UniqueName
=
"venNm"
FilterControlAltText
=
"Filter venNm column"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
HeaderStyle-Font-Bold
=
"true"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"venCity"
HeaderText
=
"City"
SortExpression
=
"venCity"
UniqueName
=
"venCity"
FilterControlAltText
=
"Filter venCity column"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
HeaderStyle-Font-Bold
=
"true"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"venStateAcro"
HeaderText
=
"State"
SortExpression
=
"stateProvAcro"
UniqueName
=
"stateProvAcro"
FilterControlAltText
=
"Filter stateProvAcro column"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
HeaderStyle-Font-Bold
=
"true"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"venZipCode"
HeaderText
=
"Zip Code"
SortExpression
=
"venZipCode"
UniqueName
=
"venZipCode"
FilterControlAltText
=
"Filter venZipCode column"
HeaderStyle-HorizontalAlign
=
"Center"
ItemStyle-HorizontalAlign
=
"Center"
HeaderStyle-Font-Bold
=
"true"
></
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
When a row is selected in the first RadGrid another RadGrid is populated as expected.
Here's the SqlDataSource for the second RadGrid
<asp:SqlDataSource ID=
"sdsRgVenDocs"
runat=
"server"
ConnectionString=
'<%$ ConnectionStrings:drappConnectionString %>'
SelectCommand=
"SELECT [docIdPk], [docTitle], [venIdFk] FROM [docs] WHERE ([venIdFk] = @venIdFk)"
>
<SelectParameters>
<asp:ControlParameter ControlID=
"rgVens"
PropertyName=
"SelectedValue"
Name=
"venIdFk"
Type=
"Int32"
></asp:ControlParameter>
</SelectParameters>
</asp:SqlDataSource>
Here's the code for the second RadGrid:
<
telerik:RadGrid
ID
=
"rgVenDocs"
runat
=
"server"
DataSourceID
=
"sdsRgVenDocs"
AutoGenerateColumns
=
"False"
AllowPaging
=
"True"
AllowSorting
=
"True"
AllowFilteringByColumn
=
"True"
ShowGroupPanel
=
"True"
Skin
=
"Default"
>
<
ClientSettings
AllowDragToGroup
=
"True"
AllowColumnsReorder
=
"True"
ReorderColumnsOnClient
=
"True"
></
ClientSettings
>
<
MasterTableView
DataKeyNames
=
"docIdPk"
DataSourceID
=
"sdsRgVenDocs"
>
<
Columns
>
<
telerik:GridButtonColumn
CommandName
=
"Select"
Text
=
"Select"
ButtonType
=
"LinkButton"
></
telerik:GridButtonColumn
>
<
telerik:GridBoundColumn
DataField
=
"docIdPk"
ReadOnly
=
"True"
HeaderText
=
"docIdPk"
SortExpression
=
"docIdPk"
UniqueName
=
"docIdPk"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter docIdPk column"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"docTitle"
HeaderText
=
"docTitle"
SortExpression
=
"docTitle"
UniqueName
=
"docTitle"
FilterControlAltText
=
"Filter docTitle column"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"venIdFk"
HeaderText
=
"venIdFk"
SortExpression
=
"venIdFk"
UniqueName
=
"venIdFk"
DataType
=
"System.Int32"
FilterControlAltText
=
"Filter venIdFk column"
></
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
At this point I should be able to select a row in the second RadGrid, but when I click on the "Select" link button the row is not selected.
How can I get the row in the second RadGrid to be selectable like the first RadGrid? I can get this to work as expected if I just use the asp:GridView controls.
Hello,
I have a radgrid and in each row I have a radslider. I want to change the value of the radslider and save it into the database at the same time by clicking on the radslider. Below you can find the radslider in radgrid:
<
telerik:GridTemplateColumn
>
<
ItemTemplate
>
<
telerik:RadSlider
RenderMode
=
"Lightweight"
ID
=
"RS_Severity"
runat
=
"server"
Orientation
=
"Horizontal"
LargeChange
=
"1"
TrackPosition
=
"TopLeft"
ShowIncreaseHandle
=
"false"
AutoPostBack
=
"true"
OnValueChanged
=
"RS_Severity_ValueChanged"
ShowDecreaseHandle
=
"false"
Width
=
"170"
ItemType
=
"item"
Font-Size
=
"Smaller"
Height
=
"35"
Skin
=
"Web20"
CssClass
=
"TicksSlider ml-1 mr-1"
>
<
Items
>
<
telerik:RadSliderItem
Text
=
"Normal"
ToolTip
=
"Normal"
runat
=
"server"
></
telerik:RadSliderItem
>
<
telerik:RadSliderItem
Text
=
"Average"
ToolTip
=
"Average"
runat
=
"server"
></
telerik:RadSliderItem
>
<
telerik:RadSliderItem
Text
=
"Bad"
ToolTip
=
"Bad"
runat
=
"server"
></
telerik:RadSliderItem
>
<
telerik:RadSliderItem
Text
=
"Very bad"
ToolTip
=
"Very bad"
runat
=
"server"
></
telerik:RadSliderItem
>
</
Items
>
</
telerik:RadSlider
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
In code behind I have a function for OnValueChanged event.
the event will fire correctly by clicking on the slider. the problem is that I cannot get the id of the row on which i am clicking.
I have tried CommandName property for radslider but it did not work.
I appreciate any suggestion and help.
Dear Developer,
I'm finding the problem when i'm using column freez and multi header option together, its not working and other features like column filters are not working.
Please let me know anyone come across this problem and resolved it. Thanks in advance.
<
asp:ObjectDataSource ID="ObjectDataSource2" SelectMethod="GetList" DeleteMethod="Delete"
OldValuesParameterFormatString
="{0}" DataObjectTypeName = "IngredientSourceBusinessObject.IngredientSource"
TypeName="IngredientSourceBusinessObjectManager.IngredientSourceManager" runat="server">
</
asp:ObjectDataSource>
The source for my grid is as follows
<
telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True"
AllowSorting="True"
DataSourceID="ObjectDataSource2" DataKeyNames="Id" GridLines="None"
Skin="Sunset" AllowAutomaticDeletes="True" AutoGenerateDeleteColumn="True"
AutoGenerateColumns="False">
<
HeaderContextMenu EnableTheming="True">
<
CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation>
</
HeaderContextMenu>
<PagerStyle AlwaysVisible="True" Mode="NextPrevAndNumeric" />
<
MasterTableView datasourceid="ObjectDataSource2"
overridedatasourcecontrolsorting="True">
<
RowIndicatorColumn>
<
HeaderStyle Width="20px"></HeaderStyle>
</
RowIndicatorColumn>
<
ExpandCollapseColumn>
<
HeaderStyle Width="20px"></HeaderStyle>
</
ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn DataField="EntryDate" DataFormatString="{0:d}"
DataType="System.DateTime" HeaderText="Entry Date" UniqueName="column1">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ID" HeaderText="ID" UniqueName="column2">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="FullName" HeaderText="Company Name"
SortExpression="FullName" UniqueName="column">
</telerik:GridBoundColumn>
</Columns>
<PagerTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandArgument="First"
CommandName="Page">First</asp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server"
CommandArgument="Prev" CommandName="Page">Prev</asp:LinkButton>
<asp:TextBox ID="TxtPageNumber" runat="server"
Text='<%# Convert.ToInt32(DataBinder.Eval(Container, "OwnerTableView.CurrentPageIndex")) + 1 %>'
style="z-index: 1" Width="48px"></asp:TextBox>
<asp:LinkButton ID="LinkButton5" runat="server" CommandName="CustomChangePage">Go</asp:LinkButton>
<asp:LinkButton ID="LinkButton4" runat="server"
CommandArgument="Next" CommandName="Page">Next</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CommandArgument="Last"
CommandName="Page">Last</asp:LinkButton>
</PagerTemplate>
</
MasterTableView>
<ClientSettings AllowColumnsReorder="True" ReorderColumnsOnClient="True">
<selecting allowrowselect="True" />
</ClientSettings>
<
FilterMenu EnableTheming="True">
<
CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation>
</
FilterMenu>
</
telerik:RadGrid>
When i click on the delete link the progam sends an empty object to my business layer.
I have tried this with a gridview from visual studio 8 and it works fine.
I am guessing that maybe this problem has to do with binding but I am unclear about that.
I have enabled sorting on the grid so overridedatasourcecontrolsorting is set to true but I tried it also set to false and that did not work either.
I would appreciate any help with this
Thank you
Judith
I have a problem with binding text property. How can i set the text property of the RadPanelItem?
<telerik:RadPanelBar RenderMode="Lightweight" ID="RadPanelbar2" runat="server" ExpandMode="MultipleExpandedItems" Width="100%">
<Items>
<telerik:RadPanelItem runat="server" Value="1" Text='<%# String.Format("General info {0:000000}", Eval("Id")) %>' Expanded="true">
<Items>
<telerik:RadPanelItem runat="server">
<ItemTemplate>
<asp:FormView runat="server" ID="fvGeneral" DataSourceID="odsGeneral" DataKeyNames="TaskId" Width="100%" OnDataBound="fvGeneral_DataBound">
<ItemTemplate>