如何在UltraWebGrid控件中控制日期列的默认日期?

时间:2011-12-15 20:18:12

标签: asp.net infragistics ultrawebgrid

我正在使用 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>

两个重要的列是STARTDATEENDDATE。两者都允许用户使用日历控件编辑单元格。

现在,如果您更改ENDDATE单元格的值,则选择器将默认为当前日期。我想要的是默认为STARTDATE列的值(如果有的话)。

我查看了文档并且找不到太多,客户端脚本API似乎完全没有记录。有谁知道这是否可行?

更新

我可以将处理程序附加到AfterDropDown的{​​{1}}事件,但是在该处理程序中我看不到任何方法来获取我在网格中单击的行。

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);
   }
}