I have a problem regarding grid item command event .It is not firing after a radbutton whose cause validation is true and this rad button is in Modalpopoup which will be visible after clicking a link in grid item-template .I used a required field validator in modalpopup.
This is my .aspx code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RadGRid.aspx.cs" Inherits="patientportal_RadGRid" EnableEventValidation="true" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.modalBackground
{
background-color: Gray;
filter: alpha(opacity=70);
opacity: 0.7;
}
.RadGrid th input
{
margin-top: 0;
margin-bottom: 0;
height: 12px;
}
.modal-inner-wrapper
{
width: 340px;
height: 340px;
background-color: White;
}
.modal-inner-wrapper .content
{
width: 320px;
height: 320px;
background-color: White;
border: solid 1px Gray;
z-index: 9999;
float: right;
margin-top: 10px;
margin-right: 10px;
}
.modal-inner-wrapper .content .close
{
float: right;
}
.modal-inner-wrapper .content .body
{
margin-top: 20px;
}
.rounded-corners
{
/*FOR OTHER MAJOR BROWSERS*/
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-khtml-border-radius: 5px;
border-radius: 5px; /*FOR IE*/
behavior: url(border-radius.htc);
}
.rel
{
position: relative;
z-index: inherit;
zoom: 1; /* For IE6 */
}
.modal-bg
{
background-color: Gray;
filter: alpha(opacity=50);
opacity: 0.6;
z-index: 999;
}
.modal
{
position: absolute;
}
</style>
<script language="javascript" type="text/javascript">
function ModalreplyDopostback(evt) {
__doPostBack('LinkButton1', '');
}
function delete_click() {
var result;
result = confirm('Are you sure you want to delete this record?');
return result;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server">
</telerik:RadStyleSheetManager>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server" />
<telerik:RadAjaxManager runat="server" ID="RadAjaxManager1">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadScriptManager1">
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadGrid2">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<div>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Office2007" />
<telerik:RadGrid GridLines="None" ID="RadGrid2" AllowMultiRowSelection="True" Style="border: 0"
runat="server" AllowPaging="True" PagerStyle-Position="Bottom" AllowSorting="True"
Skin="Office2007" PageSize="3" Width="865px" ShowGroupPanel="True" ShowFooter="true"
AllowAutomaticDeletes="True" PagerStyle-AlwaysVisible="true" EnableLinqExpressions="False"
OnItemDataBound="RadGrid2_ItemDataBound" OnPageIndexChanged="RadGrid2_PageIndexChanged"
OnPageSizeChanged="RadGrid2_PageSizeChanged" OnItemDeleted="RadGrid2_ItemDeleted"
OnNeedDataSource="RadGrid2_NeedDataSource" OnItemCommand="RadGrid2_ItemCommand">
<MasterTableView AutoGenerateColumns="False" DataKeyNames="Id,MailID" AllowMultiColumnSorting="true"
DataMember="">
<GroupByExpressions>
<telerik:GridGroupByExpression>
<SelectFields>
<telerik:GridGroupByField FieldAlias="Subject" FieldName="Subject" FormatString=""
HeaderValueSeparator=":"></telerik:GridGroupByField>
</SelectFields>
<GroupByFields>
<telerik:GridGroupByField SortOrder="Descending" FieldName="ID" FormatString="" HeaderText="Subject">
</telerik:GridGroupByField>
</GroupByFields>
</telerik:GridGroupByExpression>
</GroupByExpressions>
<PagerStyle Visible="true" />
<CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
</ExpandCollapseColumn>
<Columns>
<telerik:GridClientSelectColumn UniqueName="SelectColumn">
<HeaderStyle Width="30px" />
</telerik:GridClientSelectColumn>
<telerik:GridBoundColumn DataField="Readstatus" SortExpression="Readstatus" UniqueName="Readstatus"
HeaderStyle-HorizontalAlign="Center" HeaderImageUrl="~/gridimages/emailMessage.png"
ItemStyle-HorizontalAlign="Center">
<HeaderStyle HorizontalAlign="Center" Width="30px"></HeaderStyle>
<ItemStyle Width="30px" Height="22px" HorizontalAlign="Center" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="FromID" HeaderText="From" SortExpression="FromID"
UniqueName="FromID">
<HeaderStyle Width="150px" HorizontalAlign="Center" />
<ItemStyle Wrap="false" Width="150px" HorizontalAlign="Center" />
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="Received">
<HeaderStyle Width="150px" HorizontalAlign="Center" />
<ItemStyle Width="150px" HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lbldatetime" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Received") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="TemplateColumn2" GroupByExpression="From Group By From"
SortExpression="From" HeaderText="Subject">
<ItemStyle Height="35px"></ItemStyle>
<ItemTemplate>
<%-- Webmail Subject LinkButton --%>
<asp:LinkButton ID="lnksub" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Subject") %>'
CommandName="viewmsg" CausesValidation="false" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'>
</asp:LinkButton>
<%-- modal PopUp panel--%>
<asp:Panel ID="Panelmsg" runat="server">
<div id="divmsginfo" style="width: 600px; float: left; display: none;" runat="server">
<table style="background-repeat: no-repeat; border-color: White; background-color: White;
color: Black; text-align: left; font-family: Verdana, Geneva, sans-serif;" width="600"
align="center" cellpadding="0" cellspacing="0" border="0">
<tr style="height: 70px; width: 550px;">
<td style="height: 69px; width: 549px;">
<fieldset>
<%--<legend><%# DataBinder.Eval(Container.DataItem,"Name") %> :--%>
<asp:Label ID="lblsubject" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Subject") %>' />
</legend>
<%# DataBinder.Eval(Container.DataItem ,"Content")%>
</fieldset>
</td>
</tr>
<tr style="height: 20px; width: 550px;">
<td style="height: 20px; width: 549px;">
<telerik:RadButton ID="lnkok" runat="server" Text="Okay" CausesValidation="False"
ButtonType="StandardButton" AutoPostBack="true" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
CommandName="vwmsg">
</telerik:RadButton>
</td>
</tr>
<tr style="height: 10px; width: 550px;">
<td style="height: 10px; width: 549px;">
</td>
</tr>
<tr style="height: 70px; width: 550px;">
<td style="height: 70px; width: 549px;">
<fieldset>
<legend>Reply</legend>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<%--<div id="divreply" runat="server" style="vertical-align: text-top;">--%>
<asp:TextBox ID="txtreplymsg" runat="server" Height="60px" Width="150px" BackColor="White"
TextMode="MultiLine" AutoPostBack="true" ValidationGroup="2" />
<asp:RequiredFieldValidator ID="rfvreplymsg" runat="server" ValidationGroup="2" ControlToValidate="txtreplymsg"><img src="../image/reqerrorimg.png" alt="error" />Reply field is empty</asp:RequiredFieldValidator>
<%--</div>--%>
</td>
</tr>
<tr>
<td>
<asp:Button ID="radbtnreply" runat="server" Text="Reply" AutoPostBack="true" UseSubmitBehavior="true"
CommandArgument='<%# DataBinder.Eval(Container.DataItem,"FromId") %>' CausesValidation="true"
ValidationGroup="2" CommandName="replymsg">
</asp:Button>
</td>
</tr>
</table>
</fieldset>
</td>
</tr>
</table>
</div>
</asp:Panel>
<asp:ModalPopupExtender ID="modpopextmsg" runat="server" X="300" Y="200" PopupControlID="divmsginfo"
BackgroundCssClass="modalBackground" TargetControlID="lnksub" PopupDragHandleControlID="Panelmsg">
</asp:ModalPopupExtender>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn>
<HeaderStyle Width="30px" HorizontalAlign="Center" />
<ItemStyle Width="30px" HorizontalAlign="Center" />
<ItemTemplate>
<asp:ImageButton ID="imgbtndelete" runat="server" ImageUrl="../image/DeleteIcon.png"
CommandName="virtualdel" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
OnClientClick="return delete_click();" />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column">
</EditColumn>
</EditFormSettings>
</MasterTableView>
<ClientSettings AllowColumnsReorder="True">
<Selecting AllowRowSelect="True" />
</ClientSettings>
<FilterMenu EnableImageSprites="False">
</FilterMenu>
<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">
</HeaderContextMenu>
</telerik:RadGrid>
</div>
<div>
</div>
</form>
</body>
</html>
And my Itemcommand_event code is
protected void RadGrid2_ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "replymsg")
{
// Grid Find control
GridEditableItem item = (GridEditableItem)e.Item;
int mailnoId = Convert.ToInt32(item.GetDataKeyValue("Id").ToString());
int mainmsgid = Convert.ToInt32(item.GetDataKeyValue("MailID").ToString());
ModalPopupExtender modpopext = (ModalPopupExtender)item.FindControl("modpopextmsg");
TextBox txtmessage = (TextBox)item.FindControl("txtreplymsg");
Label msgsubject = (Label)item.FindControl("lblsubject");
TextBox txtmsgcontent = (TextBox)e.Item.FindControl("txtreplymsg");
string fromid = Convert.ToString(e.CommandArgument);
// reply operation with readstatus flag update
string receivertoid = "1020";
string messagesubject = msgsubject.Text.Trim();
string msgcontent = txtmessage.Text;
replyMessage(mainmsgid, receivertoid, fromid, msgcontent, messagesubject);
//sendingMsg(mainmsgid, receivertoid, fromid, txtmessage.Text.Trim());
modpopext.Hide();
//changemsgstatus(mailnoId);
radgridbind2();
}
}
This is my .aspx code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="RadGRid.aspx.cs" Inherits="patientportal_RadGRid" EnableEventValidation="true" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.modalBackground
{
background-color: Gray;
filter: alpha(opacity=70);
opacity: 0.7;
}
.RadGrid th input
{
margin-top: 0;
margin-bottom: 0;
height: 12px;
}
.modal-inner-wrapper
{
width: 340px;
height: 340px;
background-color: White;
}
.modal-inner-wrapper .content
{
width: 320px;
height: 320px;
background-color: White;
border: solid 1px Gray;
z-index: 9999;
float: right;
margin-top: 10px;
margin-right: 10px;
}
.modal-inner-wrapper .content .close
{
float: right;
}
.modal-inner-wrapper .content .body
{
margin-top: 20px;
}
.rounded-corners
{
/*FOR OTHER MAJOR BROWSERS*/
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
-khtml-border-radius: 5px;
border-radius: 5px; /*FOR IE*/
behavior: url(border-radius.htc);
}
.rel
{
position: relative;
z-index: inherit;
zoom: 1; /* For IE6 */
}
.modal-bg
{
background-color: Gray;
filter: alpha(opacity=50);
opacity: 0.6;
z-index: 999;
}
.modal
{
position: absolute;
}
</style>
<script language="javascript" type="text/javascript">
function ModalreplyDopostback(evt) {
__doPostBack('LinkButton1', '');
}
function delete_click() {
var result;
result = confirm('Are you sure you want to delete this record?');
return result;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<telerik:RadStyleSheetManager ID="RadStyleSheetManager1" runat="server">
</telerik:RadStyleSheetManager>
<telerik:RadScriptManager ID="RadScriptManager1" runat="server" />
<telerik:RadAjaxManager runat="server" ID="RadAjaxManager1">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadScriptManager1">
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="RadGrid2">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGrid2" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<div>
<telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Office2007" />
<telerik:RadGrid GridLines="None" ID="RadGrid2" AllowMultiRowSelection="True" Style="border: 0"
runat="server" AllowPaging="True" PagerStyle-Position="Bottom" AllowSorting="True"
Skin="Office2007" PageSize="3" Width="865px" ShowGroupPanel="True" ShowFooter="true"
AllowAutomaticDeletes="True" PagerStyle-AlwaysVisible="true" EnableLinqExpressions="False"
OnItemDataBound="RadGrid2_ItemDataBound" OnPageIndexChanged="RadGrid2_PageIndexChanged"
OnPageSizeChanged="RadGrid2_PageSizeChanged" OnItemDeleted="RadGrid2_ItemDeleted"
OnNeedDataSource="RadGrid2_NeedDataSource" OnItemCommand="RadGrid2_ItemCommand">
<MasterTableView AutoGenerateColumns="False" DataKeyNames="Id,MailID" AllowMultiColumnSorting="true"
DataMember="">
<GroupByExpressions>
<telerik:GridGroupByExpression>
<SelectFields>
<telerik:GridGroupByField FieldAlias="Subject" FieldName="Subject" FormatString=""
HeaderValueSeparator=":"></telerik:GridGroupByField>
</SelectFields>
<GroupByFields>
<telerik:GridGroupByField SortOrder="Descending" FieldName="ID" FormatString="" HeaderText="Subject">
</telerik:GridGroupByField>
</GroupByFields>
</telerik:GridGroupByExpression>
</GroupByExpressions>
<PagerStyle Visible="true" />
<CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
</ExpandCollapseColumn>
<Columns>
<telerik:GridClientSelectColumn UniqueName="SelectColumn">
<HeaderStyle Width="30px" />
</telerik:GridClientSelectColumn>
<telerik:GridBoundColumn DataField="Readstatus" SortExpression="Readstatus" UniqueName="Readstatus"
HeaderStyle-HorizontalAlign="Center" HeaderImageUrl="~/gridimages/emailMessage.png"
ItemStyle-HorizontalAlign="Center">
<HeaderStyle HorizontalAlign="Center" Width="30px"></HeaderStyle>
<ItemStyle Width="30px" Height="22px" HorizontalAlign="Center" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="FromID" HeaderText="From" SortExpression="FromID"
UniqueName="FromID">
<HeaderStyle Width="150px" HorizontalAlign="Center" />
<ItemStyle Wrap="false" Width="150px" HorizontalAlign="Center" />
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn HeaderText="Received">
<HeaderStyle Width="150px" HorizontalAlign="Center" />
<ItemStyle Width="150px" HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lbldatetime" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Received") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="TemplateColumn2" GroupByExpression="From Group By From"
SortExpression="From" HeaderText="Subject">
<ItemStyle Height="35px"></ItemStyle>
<ItemTemplate>
<%-- Webmail Subject LinkButton --%>
<asp:LinkButton ID="lnksub" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Subject") %>'
CommandName="viewmsg" CausesValidation="false" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'>
</asp:LinkButton>
<%-- modal PopUp panel--%>
<asp:Panel ID="Panelmsg" runat="server">
<div id="divmsginfo" style="width: 600px; float: left; display: none;" runat="server">
<table style="background-repeat: no-repeat; border-color: White; background-color: White;
color: Black; text-align: left; font-family: Verdana, Geneva, sans-serif;" width="600"
align="center" cellpadding="0" cellspacing="0" border="0">
<tr style="height: 70px; width: 550px;">
<td style="height: 69px; width: 549px;">
<fieldset>
<%--<legend><%# DataBinder.Eval(Container.DataItem,"Name") %> :--%>
<asp:Label ID="lblsubject" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"Subject") %>' />
</legend>
<%# DataBinder.Eval(Container.DataItem ,"Content")%>
</fieldset>
</td>
</tr>
<tr style="height: 20px; width: 550px;">
<td style="height: 20px; width: 549px;">
<telerik:RadButton ID="lnkok" runat="server" Text="Okay" CausesValidation="False"
ButtonType="StandardButton" AutoPostBack="true" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
CommandName="vwmsg">
</telerik:RadButton>
</td>
</tr>
<tr style="height: 10px; width: 550px;">
<td style="height: 10px; width: 549px;">
</td>
</tr>
<tr style="height: 70px; width: 550px;">
<td style="height: 70px; width: 549px;">
<fieldset>
<legend>Reply</legend>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td>
<%--<div id="divreply" runat="server" style="vertical-align: text-top;">--%>
<asp:TextBox ID="txtreplymsg" runat="server" Height="60px" Width="150px" BackColor="White"
TextMode="MultiLine" AutoPostBack="true" ValidationGroup="2" />
<asp:RequiredFieldValidator ID="rfvreplymsg" runat="server" ValidationGroup="2" ControlToValidate="txtreplymsg"><img src="../image/reqerrorimg.png" alt="error" />Reply field is empty</asp:RequiredFieldValidator>
<%--</div>--%>
</td>
</tr>
<tr>
<td>
<asp:Button ID="radbtnreply" runat="server" Text="Reply" AutoPostBack="true" UseSubmitBehavior="true"
CommandArgument='<%# DataBinder.Eval(Container.DataItem,"FromId") %>' CausesValidation="true"
ValidationGroup="2" CommandName="replymsg">
</asp:Button>
</td>
</tr>
</table>
</fieldset>
</td>
</tr>
</table>
</div>
</asp:Panel>
<asp:ModalPopupExtender ID="modpopextmsg" runat="server" X="300" Y="200" PopupControlID="divmsginfo"
BackgroundCssClass="modalBackground" TargetControlID="lnksub" PopupDragHandleControlID="Panelmsg">
</asp:ModalPopupExtender>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn>
<HeaderStyle Width="30px" HorizontalAlign="Center" />
<ItemStyle Width="30px" HorizontalAlign="Center" />
<ItemTemplate>
<asp:ImageButton ID="imgbtndelete" runat="server" ImageUrl="../image/DeleteIcon.png"
CommandName="virtualdel" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id") %>'
OnClientClick="return delete_click();" />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column">
</EditColumn>
</EditFormSettings>
</MasterTableView>
<ClientSettings AllowColumnsReorder="True">
<Selecting AllowRowSelect="True" />
</ClientSettings>
<FilterMenu EnableImageSprites="False">
</FilterMenu>
<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">
</HeaderContextMenu>
</telerik:RadGrid>
</div>
<div>
</div>
</form>
</body>
</html>
And my Itemcommand_event code is
protected void RadGrid2_ItemCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "replymsg")
{
// Grid Find control
GridEditableItem item = (GridEditableItem)e.Item;
int mailnoId = Convert.ToInt32(item.GetDataKeyValue("Id").ToString());
int mainmsgid = Convert.ToInt32(item.GetDataKeyValue("MailID").ToString());
ModalPopupExtender modpopext = (ModalPopupExtender)item.FindControl("modpopextmsg");
TextBox txtmessage = (TextBox)item.FindControl("txtreplymsg");
Label msgsubject = (Label)item.FindControl("lblsubject");
TextBox txtmsgcontent = (TextBox)e.Item.FindControl("txtreplymsg");
string fromid = Convert.ToString(e.CommandArgument);
// reply operation with readstatus flag update
string receivertoid = "1020";
string messagesubject = msgsubject.Text.Trim();
string msgcontent = txtmessage.Text;
replyMessage(mainmsgid, receivertoid, fromid, msgcontent, messagesubject);
//sendingMsg(mainmsgid, receivertoid, fromid, txtmessage.Text.Trim());
modpopext.Hide();
//changemsgstatus(mailnoId);
radgridbind2();
}
}