Hi Team,
I'm using Telerik Rad Grid in my application, in which i'm facing an issue. I'm having an editing option in the grid in Double click event, here is the code. While I'm double click, it suppose to come to "RadGrid1_ItemDataBound" event, but its not firing the above event, instead off the grid is hiding
Find the Attached screenshots:
Page1.jpg ---> It is displaying the Grid with data.
Page2.jpg ---> When i double click on the row, then the grid is hiding and the "RadGrid1_ItemDataBound" Event is not firing.
Below is the Code for your reference
########################################################################################################
<telerik:RadGrid ID="RadGrid1" runat="server" GridLines="None" EnableEmbeddedSkins="True"
AllowSorting="True" OnDeleteCommand="RadGrid1_DeleteCommand" AutoGenerateColumns="False"
Width="340px" OnItemDataBound="RadGrid1_ItemDataBound" AllowAutomaticUpdates="false"
AllowAutomaticInserts="false" AllowFilteringByColumn="false">
<MasterTableView DataKeyNames="RowNum,Option" EditMode="InPlace" GridLines="None" Width="100%"
NoMasterRecordsText="No data fields to display.."
HeaderStyle-HorizontalAlign="Center">
<Columns>
<telerik:GridBoundColumn ReadOnly="true" DataField="RowNum" Visible="false" HeaderText="RowNum"
UniqueName="RowNum">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" DataField="Option" HeaderText="Option" UniqueName="Option">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" Visible="true" DataField="Values" HeaderText="Values"
UniqueName="Values">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" HeaderText="ValuesWithCap" DataField="ValuesWithCap" UniqueName="ValuesWithCap" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" HeaderText="Range Name" DataField ="RangeName" UniqueName="RangeName" Visible="true">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn CommandName="Delete" HeaderText="Delete" ButtonType="ImageButton"
ImageUrl="~/Images/btn/btn_delete.gif" UniqueName="Delete">
</telerik:GridButtonColumn>
</Columns>
</MasterTableView>
<ClientSettings>
<ClientEvents OnRowClick="RowClick" OnRowDblClick="RowDblClick" OnGridCreated="GridCreated"
OnCommand="GridCommand" />
</ClientSettings>
</telerik:RadGrid>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args) {
if (args.get_error() != undefined) {
args.set_errorHandled(true);
location.reload(true);
}
}
var hasChanges = false, inputs, dropdowns, editedRow;
function TrackChanges(e) {
hasChanges = true;
}
function RowClick(sender, eventArgs) {
if (editedRow != null) {
hasChanges = false;
$find("<%= RadGrid1.MasterTableView.ClientID %>").updateItem(editedRow);
}
}
function RowDblClick(sender, eventArgs) {
editedRow = eventArgs.get_itemIndexHierarchical();
$find("<%= RadGrid1.MasterTableView.ClientID %>").editItem(editedRow);
}
function GridCommand(sender, args) {
if (args.get_commandName() != "Edit") {
editedRow = null;
}
}
function GridCreated(sender, eventArgs) {
var gridElement = sender.get_element();
var elementsToUse = [];
inputs = gridElement.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var lowerType = inputs[i].type.toLowerCase();
if (lowerType == "hidden" || lowerType == "button") {
continue;
}
Array.add(elementsToUse, inputs[i]);
inputs[i].onchange = TrackChanges;
}
dropdowns = gridElement.getElementsByTagName("select");
for (var i = 0; i < dropdowns.length; i++) {
dropdowns[i].onchange = TrackChanges;
}
setTimeout(function() { if (elementsToUse[0]) elementsToUse[0].focus(); }, 100);
}
</script>
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
DataRowView rowView = (DataRowView)e.Item.DataItem;
if (e.Item is GridDataItem && e.Item.IsInEditMode)
{
int index = e.Item.ItemIndex;
DataTable dt;
string uniqueValues = string.Empty;
ArrayList arrValues = new ArrayList();
if (Session["RangeList"] != null)
{
dt = (DataTable)Session["RangeList"];
DataRow dr = dt.Rows[index];
this.txtRangeName.Text = dr["RangeName"].ToString();
this.RCBOptions.SelectedValue = dr["OptionIndex"].ToString();
uniqueValues = dr["ValuesWithCap"].ToString();
this.hdnTempRangeId.Value = index.ToString();
ViewState["hdnTempRangeId"] = index.ToString();
arrValues.Add(uniqueValues.Split('^'));
for (int i = 0; i < ((string[])(arrValues[0])).Count(); i++)
{
RadListBoxItem lst = new RadListBoxItem();
lst.Text = ((string[])(arrValues[0]))[i].ToString();
lst.Value = ((string[])(arrValues[0]))[i].ToString();
UsrSelectedValueListBox.Items.Add(lst);
}
RadGrid1.DataSource = dt;
RadGrid1.DataBind();
}
}
}
Please give us a good solution for this issue ASAP. We need it urgently...
Thanks
Alexis
I'm using Telerik Rad Grid in my application, in which i'm facing an issue. I'm having an editing option in the grid in Double click event, here is the code. While I'm double click, it suppose to come to "RadGrid1_ItemDataBound" event, but its not firing the above event, instead off the grid is hiding
Find the Attached screenshots:
Page1.jpg ---> It is displaying the Grid with data.
Page2.jpg ---> When i double click on the row, then the grid is hiding and the "RadGrid1_ItemDataBound" Event is not firing.
Below is the Code for your reference
########################################################################################################
<telerik:RadGrid ID="RadGrid1" runat="server" GridLines="None" EnableEmbeddedSkins="True"
AllowSorting="True" OnDeleteCommand="RadGrid1_DeleteCommand" AutoGenerateColumns="False"
Width="340px" OnItemDataBound="RadGrid1_ItemDataBound" AllowAutomaticUpdates="false"
AllowAutomaticInserts="false" AllowFilteringByColumn="false">
<MasterTableView DataKeyNames="RowNum,Option" EditMode="InPlace" GridLines="None" Width="100%"
NoMasterRecordsText="No data fields to display.."
HeaderStyle-HorizontalAlign="Center">
<Columns>
<telerik:GridBoundColumn ReadOnly="true" DataField="RowNum" Visible="false" HeaderText="RowNum"
UniqueName="RowNum">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" DataField="Option" HeaderText="Option" UniqueName="Option">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" Visible="true" DataField="Values" HeaderText="Values"
UniqueName="Values">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" HeaderText="ValuesWithCap" DataField="ValuesWithCap" UniqueName="ValuesWithCap" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn ReadOnly="true" HeaderText="Range Name" DataField ="RangeName" UniqueName="RangeName" Visible="true">
</telerik:GridBoundColumn>
<telerik:GridButtonColumn CommandName="Delete" HeaderText="Delete" ButtonType="ImageButton"
ImageUrl="~/Images/btn/btn_delete.gif" UniqueName="Delete">
</telerik:GridButtonColumn>
</Columns>
</MasterTableView>
<ClientSettings>
<ClientEvents OnRowClick="RowClick" OnRowDblClick="RowDblClick" OnGridCreated="GridCreated"
OnCommand="GridCommand" />
</ClientSettings>
</telerik:RadGrid>
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args) {
if (args.get_error() != undefined) {
args.set_errorHandled(true);
location.reload(true);
}
}
var hasChanges = false, inputs, dropdowns, editedRow;
function TrackChanges(e) {
hasChanges = true;
}
function RowClick(sender, eventArgs) {
if (editedRow != null) {
hasChanges = false;
$find("<%= RadGrid1.MasterTableView.ClientID %>").updateItem(editedRow);
}
}
function RowDblClick(sender, eventArgs) {
editedRow = eventArgs.get_itemIndexHierarchical();
$find("<%= RadGrid1.MasterTableView.ClientID %>").editItem(editedRow);
}
function GridCommand(sender, args) {
if (args.get_commandName() != "Edit") {
editedRow = null;
}
}
function GridCreated(sender, eventArgs) {
var gridElement = sender.get_element();
var elementsToUse = [];
inputs = gridElement.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var lowerType = inputs[i].type.toLowerCase();
if (lowerType == "hidden" || lowerType == "button") {
continue;
}
Array.add(elementsToUse, inputs[i]);
inputs[i].onchange = TrackChanges;
}
dropdowns = gridElement.getElementsByTagName("select");
for (var i = 0; i < dropdowns.length; i++) {
dropdowns[i].onchange = TrackChanges;
}
setTimeout(function() { if (elementsToUse[0]) elementsToUse[0].focus(); }, 100);
}
</script>
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
DataRowView rowView = (DataRowView)e.Item.DataItem;
if (e.Item is GridDataItem && e.Item.IsInEditMode)
{
int index = e.Item.ItemIndex;
DataTable dt;
string uniqueValues = string.Empty;
ArrayList arrValues = new ArrayList();
if (Session["RangeList"] != null)
{
dt = (DataTable)Session["RangeList"];
DataRow dr = dt.Rows[index];
this.txtRangeName.Text = dr["RangeName"].ToString();
this.RCBOptions.SelectedValue = dr["OptionIndex"].ToString();
uniqueValues = dr["ValuesWithCap"].ToString();
this.hdnTempRangeId.Value = index.ToString();
ViewState["hdnTempRangeId"] = index.ToString();
arrValues.Add(uniqueValues.Split('^'));
for (int i = 0; i < ((string[])(arrValues[0])).Count(); i++)
{
RadListBoxItem lst = new RadListBoxItem();
lst.Text = ((string[])(arrValues[0]))[i].ToString();
lst.Value = ((string[])(arrValues[0]))[i].ToString();
UsrSelectedValueListBox.Items.Add(lst);
}
RadGrid1.DataSource = dt;
RadGrid1.DataBind();
}
}
}
Please give us a good solution for this issue ASAP. We need it urgently...
Thanks
Alexis