我正在使用 Infragistics UltraWebGrid 控件并具有以下布局:
<igtbl:UltraWebGrid ID="uwgPrescribedTrainingPlan" runat="server" Browser="Auto">
<Bands>
<igtbl:UltraGridBand DataKeyField="TRAININGPLANID">
<Columns>
...
<igtbl:UltraGridColumn HeaderText="Training Start Date" Key="STARTDATE" BaseColumnName="STARTDATE"
DataType="System.DateTime" Format="MM-dd-yy" EditorControlID="wdcDateChooser" />
<igtbl:UltraGridColumn HeaderText="Training End Date" Key="ENDDATE" BaseColumnName="ENDDATE"
DataType="System.DateTime" Format="MM-dd-yy" EditorControlID="wdcDateChooser" />
...
</Columns>
</igtbl:UltraGridBand>
</Bands>
</igtbl:UltraWebGrid>
两个重要的列是STARTDATE
和ENDDATE
。两者都允许用户使用日历控件编辑单元格。
现在,如果您更改ENDDATE
单元格的值,则选择器将默认为当前日期。我想要的是默认为STARTDATE
列的值(如果有的话)。
我查看了文档并且找不到太多,客户端脚本API似乎完全没有记录。有谁知道这是否可行?
更新:
我可以将处理程序附加到AfterDropDown
的{{1}}事件,但是在该处理程序中我看不到任何方法来获取我在网格中单击的行。
答案 0 :(得分:1)
我相信我有一个解决方案。我已将以下Javascript附加到AfterDropDown
控件的WebDateChooser
事件中,如下所示:
<ClientSideEvents AfterDropDown="InitEndDateDefault"></ClientSideEvents>
Javascript功能如下:
function InitEndDateDefault(oDateChooser, dropDownPanel, oEvent)
{
var cell = oDateChooser.webGrid.grid.getActiveCell();
if (cell.Column.Key == "ENDDATE" && !oDateChooser.getValue())
{
var startDate = cell.getPrevCell().getValue();
oDateChooser.Calendar.setSelectedDate(startDate);
}
}