如果没有自定义的字段,只是布局改变,则比较简单
1.复制 InplaceEditor.ascx 重命名为 InplaceEditorTimeTracking.ascx
2、修改 InplaceEditorTimeTracking.ascx 的布局,可以添加控件
<dxrp:ASPxRoundPanel ID="ASPxRoundPanelTitle" runat="server" Width="100%" SkinID="PlasticBlue"
HeaderText="Hour used">
<PanelCollection>
<dxp:PanelContent runat="server">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td >
<dxe:ASPxTextBox ID="Subject" runat="server" Width="100%" Text='<%# ((AppointmentInplaceEditorTemplateContainer)Container.Parent.Parent).Appointment.Subject %>'>
</dxe:ASPxTextBox>
</td>
<td width="25">
<cc1:NoBorderButton runat="server" ClientInstanceName="_dx" ID="btnSave" Width="19px"
Height="19px" ToolTip="Save" ImageUrl='<%#Page.ClientScript.GetWebResourceUrl(typeof(ASPxScheduler), "Images.InplaceEditor.Save.png") %>'
Image-IsResourcePng="True">
<Image Height="19px" Width="19px" />
</cc1:NoBorderButton>
</td>
<td width="25">
<cc1:NoBorderButton runat="server" ClientInstanceName="_dx" ID="btnCancel" Width="19px"
Height="19px" ToolTip="Cancel" ImageUrl='<%#Page.ClientScript.GetWebResourceUrl(typeof(ASPxScheduler), "Images.InplaceEditor.Cancel.png") %>'
CausesValidation="False" Image-IsResourcePng="True">
<Image Height="19px" Width="19px" />
</cc1:NoBorderButton>
</td>
</tr>
</table>
</dxp:PanelContent>
</PanelCollection>
</dxrp:ASPxRoundPanel>
3、修改后台代码 InplaceEditorTimeTracking.ascx.cs
namespace Diebold.ProjectTracking.Web.Controls.ASPxSchedulerForms{public partial class InplaceEditorTimeTracking : InplaceEditorBaseFormControl
{protected void Page_Load(object sender, EventArgs e)
{ //PrepareChildControls(); Subject.Focus();}
public override void DataBind() { base.DataBind();AppointmentInplaceEditorTemplateContainer container = (AppointmentInplaceEditorTemplateContainer)Parent;
btnSave.ClientSideEvents.Click = container.SaveHandler;
btnCancel.ClientSideEvents.Click = container.CancelHandler;
}
protected override ASPxEditBase[] GetChildEditors()
{ASPxEditBase[] edits = new ASPxEditBase[] { Subject };
return edits;}
protected override ASPxButton[] GetChildButtons()
{ASPxButton[] buttons = new ASPxButton[] {
btnSave, btnCancel
};
return buttons;}
}
}
4、新建类 InplaceEditorSaveCallbackCommandTimeTracking.cs
namespace Diebold.ProjectTracking.Web.Controls.ASPxSchedulerForms{public class InplaceEditorSaveCallbackCommandTimeTracking : AppointmentInplaceEditorSaveCallbackCommand
{public InplaceEditorSaveCallbackCommandTimeTracking(ASPxScheduler control)
: base(control) {}
protected override void AssignControllerValues() {ASPxRoundPanel panel = (ASPxRoundPanel)FindControlByID("ASPxRoundPanelTitle");
Controller.Subject = ((ASPxTextBox)panel.FindControl("Subject")).Text;
base.AssignControllerValues(); }
}
}
5、为ASPxScheduler控件添加事件处理函数 OnBeforeExecuteCallbackCommand
<dxwschs:ASPxScheduler ID="ASPxSchedulerActivity" runat="server" Width="100%" SkinID=""
ActiveViewType="Week" ClientInstanceName="ASPxSchedulerActivityClient" GroupType="Date"
OnBeforeExecuteCallbackCommand="ASPxSchedulerActivity_OnBeforeExecuteCallbackCommand"
protected void ASPxSchedulerActivity_OnBeforeExecuteCallbackCommand(object sender, SchedulerCallbackCommandEventArgs e)
{if (e.CommandId == SchedulerCallbackCommandId.InplaceEditorSave)
{e.Command = new InplaceEditorSaveCallbackCommandTimeTracking((ASPxScheduler)sender);
}
}
浙公网安备 33010602011771号