Hello,
A brief explanation of what I want to do:
I'm using a Custom AdvanceEditTemplate to update employee absences. For this I need a RadGrid inside the advanceform to show absence details. Until now no problems. I'm able to populate the grid with data through a SQLDataSource. This grid records must be editable and there is where the problems start as I can't figure how to access the RadGrid (RadGrid3) update line that is nested in the AdvancedEditTemplate. In this radgrid I must have a UploadFile control to save an attachment (to filesystem) and a textbox to update a "Reason" property. I need to update this record in the absence table through an SQLDataSource which will call an SP to update these two collumns (attachment link and reason). For this I'm using the Grids UpdateCommand
event as shown below:
CodeBehind:
protected void RadGrid3_UpdateCommand(object sender, GridCommandEventArgs e)
{
//Insert Record in Portal Absence Tables for a Update Action
//Properties: Reason, Attachment, Action(UPDATE),Status(1)
GridEditableItem editedItem = e.Item as GridEditableItem;
Session["lResourceAbsenceDetailID"] = editedItem["lResourceAbsenceDetailID"].Text;
Session["Reason"] = "";
Session["Status"] = 1;
Session["Action"] = "UPDATE";
Session["Attachment"] = attachment;
SqlDataSource5.Select(DataSourceSelectArguments.Empty);
}
ASPNET COde:
<telerik:RadScheduler ID="RadScheduler1" OnClientAppointmentDoubleClick="OnClientAppointmentDoubleClick"
runat="server" SelectedView="MonthView" TimelineView-UserSelectable="false" WeekView-UserSelectable="true"
GroupingDirection="Vertical" OverflowBehavior="Expand" Skin="Outlook" DataSourceID="SqlDataSource1"
TimelineView-HeaderDateFormat="mm-yy" StartInsertingInAdvancedForm="True" TimelineView-ColumnHeaderDateFormat="dd"
OnAppointmentClick="RadScheduler1_AppointmentClick" OnAppointmentDataBound="RadScheduler1_AppointmentDataBound"
OnFormCreating="RadScheduler1_FormCreating" OnFormCreated="RadScheduler1_FormCreated"
OnAppointmentCommand="RadScheduler1_AppointmentCommand" DataEndField="EndDate"
DataKeyField="lResourceAbsenceID" DataStartField="StartDate" DataSubjectField="Name"
MonthView-AdaptiveRowHeight="true" OnClientAppointmentDeleting="OnClientAppointmentDeleting">
<Localization ConfirmDeleteText="Tem a certeza que pretende eliminar esta ausência?"
ConfirmDeleteTitle="Confirmar Eliminação" />
<AdvancedForm Modal="true" />
<MonthView AdaptiveRowHeight="True" />
<AdvancedEditTemplate>
<div class="rsAdvancedEdit" style="position: relative">
<%-- Title bar. --%>
<div class="rsAdvTitle">
<%-- The rsAdvInnerTitle element is used as a drag handle when the form is modal. --%>
<h1 class="rsAdvInnerTitle">
</h1>
<asp:LinkButton ID="AdvancedEditCloseButton" runat="server" CausesValidation="false"
CommandName="Cancel" CssClass="rsAdvEditClose" ToolTip="close"> close
</asp:LinkButton>
</div>
<div class="rsAdvContentWrapper">
<telerik:RadGrid ID="RadGrid3" runat="server" AutoGenerateEditColumn="True" DataSourceID="SqlDataSource9"
GridLines="None" OnUpdateCommand="RadGrid3_UpdateCommand" Skin="Outlook" ClientSettings-Selecting-AllowRowSelect="true">
<MasterTableView AutoGenerateColumns="False" DataSourceID="SqlDataSource9">
<RowIndicatorColumn>
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px" />
</ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn DataField="AbsenceID" DataType="System.Int32" HeaderText="AbsenceID"
ReadOnly="True" SortExpression="AbsenceID" UniqueName="AbsenceID" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridDropDownColumn DataField="AbsenceCodeID" DataSourceID="SqlDataSource8"
HeaderText="Tipo Ausencia" ListTextField="Name" ListValueField="AbsenceID" ReadOnly="True"
SortExpression="AbsenceCodeID" UniqueName="AbsenceCodeID">
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn DataField="lResourceAbsenceDetailID" DataType="System.Int32"
HeaderText="lResourceAbsenceDetailID" ReadOnly="True" SortExpression="lResourceAbsenceDetailID"
UniqueName="lResourceAbsenceDetailID" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="lResourceAbsenceID" DataType="System.Int32" HeaderText="lResourceAbsenceID"
ReadOnly="True" SortExpression="lResourceAbsenceID" UniqueName="lResourceAbsenceID"
Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ResourceID" DataType="System.Int32" HeaderText="ResourceID"
ReadOnly="True" SortExpression="ResourceID" UniqueName="ResourceID" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Hours" DataType="System.Int64" HeaderText="Hours"
ReadOnly="True" SortExpression="Hours" UniqueName="Hours" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ScheduleDetailID" DataType="System.Int32" HeaderText="ScheduleDetailID"
ReadOnly="True" SortExpression="ScheduleDetailID" UniqueName="ScheduleDetailID"
Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="starttime" DataType="System.TimeSpan" HeaderText="Hora Inicio"
ReadOnly="True" SortExpression="starttime" UniqueName="starttime">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="endtime" DataType="System.TimeSpan" HeaderText="Hora Fim"
ReadOnly="True" SortExpression="endtime" UniqueName="endtime">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Date" DataType="System.DateTime" HeaderText="Data"
ReadOnly="True" SortExpression="Date" UniqueName="Date">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Reason" HeaderText="Motivo" UniqueName="Reason">
</telerik:GridBoundColumn>
<telerik:GridAttachmentColumn FileNameTextField="Attachment" HeaderText="Anexo" UniqueName="Attachment">
</telerik:GridAttachmentColumn>
<telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
<br />
<div>
<asp:ImageButton ID="btn_AllUsers" runat="server" ImageUrl="~/images/delete.gif"
CommandName="DeleteAbsence" />
<asp:LinkButton ID="lBtn_DeleteAbsence" Text="Eliminar Tudo" CssClass="SubHead" runat="server"
CommandName="DeleteAbsence_" />
<br />
<asp:Label ID="pl_DeleteRequestMessage" CssClass="SuccessMessage" runat="server"
Visible="false" />
</div>
<asp:Panel ID="ButtonsPanel" runat="server" CssClass="rsAdvancedSubmitArea">
<div class="rsAdvButtonWrapper">
<%--<asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" CssClass="rsAdvEditSave"> <span>Salvar</span>
</asp:LinkButton>--%>
<asp:LinkButton ID="CancelButton" runat="server" CausesValidation="false" CommandName="Cancel"
CssClass="rsAdvEditCancel"> <span>VOLTAR</span>
</asp:LinkButton>
</div>
</asp:Panel>
</div>
</div>
</AdvancedEditTemplate>
....but it's not working as I can't get the Grid row that I'm updating through (editedItem["lResourceAbsenceDetailID"].Text;). Another problem is that I'm not able to debug this. Can someone please tell me what I must do to make this work. I would very much apreciate any help.
Cheers,
Pedro
A brief explanation of what I want to do:
I'm using a Custom AdvanceEditTemplate to update employee absences. For this I need a RadGrid inside the advanceform to show absence details. Until now no problems. I'm able to populate the grid with data through a SQLDataSource. This grid records must be editable and there is where the problems start as I can't figure how to access the RadGrid (RadGrid3) update line that is nested in the AdvancedEditTemplate. In this radgrid I must have a UploadFile control to save an attachment (to filesystem) and a textbox to update a "Reason" property. I need to update this record in the absence table through an SQLDataSource which will call an SP to update these two collumns (attachment link and reason). For this I'm using the Grids UpdateCommand
event as shown below:
CodeBehind:
protected void RadGrid3_UpdateCommand(object sender, GridCommandEventArgs e)
{
//Insert Record in Portal Absence Tables for a Update Action
//Properties: Reason, Attachment, Action(UPDATE),Status(1)
GridEditableItem editedItem = e.Item as GridEditableItem;
Session["lResourceAbsenceDetailID"] = editedItem["lResourceAbsenceDetailID"].Text;
Session["Reason"] = "";
Session["Status"] = 1;
Session["Action"] = "UPDATE";
Session["Attachment"] = attachment;
SqlDataSource5.Select(DataSourceSelectArguments.Empty);
}
ASPNET COde:
<telerik:RadScheduler ID="RadScheduler1" OnClientAppointmentDoubleClick="OnClientAppointmentDoubleClick"
runat="server" SelectedView="MonthView" TimelineView-UserSelectable="false" WeekView-UserSelectable="true"
GroupingDirection="Vertical" OverflowBehavior="Expand" Skin="Outlook" DataSourceID="SqlDataSource1"
TimelineView-HeaderDateFormat="mm-yy" StartInsertingInAdvancedForm="True" TimelineView-ColumnHeaderDateFormat="dd"
OnAppointmentClick="RadScheduler1_AppointmentClick" OnAppointmentDataBound="RadScheduler1_AppointmentDataBound"
OnFormCreating="RadScheduler1_FormCreating" OnFormCreated="RadScheduler1_FormCreated"
OnAppointmentCommand="RadScheduler1_AppointmentCommand" DataEndField="EndDate"
DataKeyField="lResourceAbsenceID" DataStartField="StartDate" DataSubjectField="Name"
MonthView-AdaptiveRowHeight="true" OnClientAppointmentDeleting="OnClientAppointmentDeleting">
<Localization ConfirmDeleteText="Tem a certeza que pretende eliminar esta ausência?"
ConfirmDeleteTitle="Confirmar Eliminação" />
<AdvancedForm Modal="true" />
<MonthView AdaptiveRowHeight="True" />
<AdvancedEditTemplate>
<div class="rsAdvancedEdit" style="position: relative">
<%-- Title bar. --%>
<div class="rsAdvTitle">
<%-- The rsAdvInnerTitle element is used as a drag handle when the form is modal. --%>
<h1 class="rsAdvInnerTitle">
</h1>
<asp:LinkButton ID="AdvancedEditCloseButton" runat="server" CausesValidation="false"
CommandName="Cancel" CssClass="rsAdvEditClose" ToolTip="close"> close
</asp:LinkButton>
</div>
<div class="rsAdvContentWrapper">
<telerik:RadGrid ID="RadGrid3" runat="server" AutoGenerateEditColumn="True" DataSourceID="SqlDataSource9"
GridLines="None" OnUpdateCommand="RadGrid3_UpdateCommand" Skin="Outlook" ClientSettings-Selecting-AllowRowSelect="true">
<MasterTableView AutoGenerateColumns="False" DataSourceID="SqlDataSource9">
<RowIndicatorColumn>
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px" />
</ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn DataField="AbsenceID" DataType="System.Int32" HeaderText="AbsenceID"
ReadOnly="True" SortExpression="AbsenceID" UniqueName="AbsenceID" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridDropDownColumn DataField="AbsenceCodeID" DataSourceID="SqlDataSource8"
HeaderText="Tipo Ausencia" ListTextField="Name" ListValueField="AbsenceID" ReadOnly="True"
SortExpression="AbsenceCodeID" UniqueName="AbsenceCodeID">
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn DataField="lResourceAbsenceDetailID" DataType="System.Int32"
HeaderText="lResourceAbsenceDetailID" ReadOnly="True" SortExpression="lResourceAbsenceDetailID"
UniqueName="lResourceAbsenceDetailID" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="lResourceAbsenceID" DataType="System.Int32" HeaderText="lResourceAbsenceID"
ReadOnly="True" SortExpression="lResourceAbsenceID" UniqueName="lResourceAbsenceID"
Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ResourceID" DataType="System.Int32" HeaderText="ResourceID"
ReadOnly="True" SortExpression="ResourceID" UniqueName="ResourceID" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Hours" DataType="System.Int64" HeaderText="Hours"
ReadOnly="True" SortExpression="Hours" UniqueName="Hours" Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ScheduleDetailID" DataType="System.Int32" HeaderText="ScheduleDetailID"
ReadOnly="True" SortExpression="ScheduleDetailID" UniqueName="ScheduleDetailID"
Visible="false">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="starttime" DataType="System.TimeSpan" HeaderText="Hora Inicio"
ReadOnly="True" SortExpression="starttime" UniqueName="starttime">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="endtime" DataType="System.TimeSpan" HeaderText="Hora Fim"
ReadOnly="True" SortExpression="endtime" UniqueName="endtime">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Date" DataType="System.DateTime" HeaderText="Data"
ReadOnly="True" SortExpression="Date" UniqueName="Date">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="Reason" HeaderText="Motivo" UniqueName="Reason">
</telerik:GridBoundColumn>
<telerik:GridAttachmentColumn FileNameTextField="Attachment" HeaderText="Anexo" UniqueName="Attachment">
</telerik:GridAttachmentColumn>
<telerik:GridClientSelectColumn UniqueName="ClientSelectColumn" />
</Columns>
</MasterTableView>
</telerik:RadGrid>
<br />
<div>
<asp:ImageButton ID="btn_AllUsers" runat="server" ImageUrl="~/images/delete.gif"
CommandName="DeleteAbsence" />
<asp:LinkButton ID="lBtn_DeleteAbsence" Text="Eliminar Tudo" CssClass="SubHead" runat="server"
CommandName="DeleteAbsence_" />
<br />
<asp:Label ID="pl_DeleteRequestMessage" CssClass="SuccessMessage" runat="server"
Visible="false" />
</div>
<asp:Panel ID="ButtonsPanel" runat="server" CssClass="rsAdvancedSubmitArea">
<div class="rsAdvButtonWrapper">
<%--<asp:LinkButton ID="UpdateButton" runat="server" CommandName="Update" CssClass="rsAdvEditSave"> <span>Salvar</span>
</asp:LinkButton>--%>
<asp:LinkButton ID="CancelButton" runat="server" CausesValidation="false" CommandName="Cancel"
CssClass="rsAdvEditCancel"> <span>VOLTAR</span>
</asp:LinkButton>
</div>
</asp:Panel>
</div>
</div>
</AdvancedEditTemplate>
....but it's not working as I can't get the Grid row that I'm updating through (editedItem["lResourceAbsenceDetailID"].Text;). Another problem is that I'm not able to debug this. Can someone please tell me what I must do to make this work. I would very much apreciate any help.
Cheers,
Pedro