2012-03-23 65 views
0

我有一个从数据库中检索的日期。我想给我的GridView编辑时间的能力,因为我的日期是日期+时间,我想在我的数据库上显示时间作为我在下拉列表中选择的值,并且能够从列表中选择其他时间并保存再次在数据库上使用日期+时间。如何在数据库的Date上显示DropDownList的时间?

这样做的最好方法是什么?

  <asp:TemplateField HeaderText="Start Time" SortExpression="SelectionStartDate"> 

        <EditItemTemplate> 
        <asp:DropDownList ID="SelectionStarttime1" runat="server" Text='<%# GetTime(Eval("SelectionStartDate", "{0:dd-MM-yyyy HH:mm:ss}")) %>' Width="120px">       
         <asp:ListItem Value="10:00:00">Midday (12:00 AM)</asp:ListItem> 
         <asp:ListItem Value="17:00:00">End Day(05:00 PM)</asp:ListItem> 
         <asp:ListItem Value="23:59:59">Midnight End</asp:ListItem> 
        </asp:DropDownList> 
         </EditItemTemplate>     
       <ItemTemplate>    
        <asp:Label ID="lblStarttime1" runat="server" Text='<%# GetTime(Eval("SelectionStartDate", "{0:dd-MM-yyyy HH:mm:ss}")) %>' ></asp:Label> 
       </ItemTemplate> 
      </asp:TemplateField> 

而且在我的VB,我有以下提前

回答

0

Protected Function GetTime(ByVal time As String) As String 

     Return time.Substring(11) 

    End Function 

感谢你可以使用TimeSpan.Parse到你的时间部分转换为TimeSpan实例。然后,您可以将其添加到Date实例以获取完整的DateTime。

Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) 
    Dim row = GridView1.Rows(e.RowIndex) 
    Dim ddl = DirectCast(row.FindControl("SelectionStarttime1"), DropDownList) 
    Dim oldStartDate = Date.Parse(DirectCast(row.FindControl("HiddenStartDate"), HtmlInputHidden).Value) 
    Dim newTime = TimeSpan.Parse(ddl.SelectedValue) 
    Dim startDate = oldStartDate.Date.Add(newTime) 
    SaveData(params) ' pseudo-code ' 
End Sub 

请注意,我用了一个Hiddenfield(你将不得不添加到您的模板一样)来存储完整的日期时间,你也可以从数据源直接(FE得到它,如果存储在会话或通过查询)。

相关问题