2012-03-23 68 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得到它,如果存儲在會話或通過查詢)。

相關問題