2010-06-21 33 views
0
在下面的代码

,字符串sFoodFormReceived1总是得到DateTime.Now的值。我不知道如何使datepicker UI上点击的日期绑定到gridview gvReservationsWithForms中的文本框。jquery的日期选择日期不结合在gridview的编辑/更新(与母版)asp.net文本框

protected void gvReservationsWithForms_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    GridViewRow row = gvReservationsWithForms.Rows[e.RowIndex]; 
    string sFoodFormReceived1 = ((TextBox)(row.Cells[9].Controls[1])).Text; 

    DataTable dt = dsReservationsToBind.Tables[0]; 


    dt.Rows[gvReservationsWithForms.EditIndex]["FoodFormReceived"] = new DateTime(System.DateTime.Parse(sFoodFormReceived1)); 
    DataRow dr = dt.Rows[row.DataItemIndex]; 

    var Reservation = new reservation_RoomReservationTableAdapter(); 

    Reservation.Update(dr); 

    gvReservationsWithForms.EditIndex = -1; 
    gvReservationsWithForms.DataBind();   

} 


<asp:Content ID="Content4" ContentPlaceHolderID="Main" Runat="Server"> 
<script type="text/javascript"> 
    $(document).ready(function() 
     {$("input[id$='tbFoodFormReceivedEditItemTemplate']").datepicker();}) 
</script> 
    <asp:GridView ID="gvReservationsWithForms" runat="server"  
    AutoGenerateColumns="False" 
    DataKeyNames="RoomReservationID" AutoGenerateSelectButton="True" 
    allowsorting ="True" AutoGenerateEditButton="True" BackColor="White" 
    BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
    GridLines="Vertical" onsorting="gvReservationsWithForms_Sorting1" 
    onrowcancelingedit="gvReservationsWithForms_RowCancelingEdit" 
    onrowediting="gvReservationsWithForms_RowEditing" 
    onrowupdating="gvReservationsWithForms_RowUpdating" 
    onselectedindexchanged="gvReservationsWithForms_SelectedIndexChanged1" 
    onrowupdated="gvReservationsWithForms_RowUpdated"> 
    <RowStyle BackColor="#EEEEEE" ForeColor="Black" /> 
<columns> 
     <asp:BoundField DataField="RoomReservationID" HeaderText="Confirmation ID" SortExpression="RoomReservationID" Visible="false" /> 
     <asp:BoundField DataField="Room" HeaderText="Room" SortExpression="Room" ReadOnly="true"/>  
     <asp:BoundField DataField="BeginDate" HeaderText="Event Begin Date" SortExpression="BeginDate" ReadOnly="true"/> 
     <asp:BoundField DataField="EndDate" HeaderText="Event End Date" SortExpression="EndDate" ReadOnly="true"/> 
     <asp:BoundField DataField="BeginTime" HeaderText="Event Begin Time" SortExpression="BeginTime" ReadOnly="true"/> 
     <asp:BoundField DataField="EndTime" HeaderText="Event End Time" SortExpression="EndTime" ReadOnly="true"/> 
     <asp:BoundField DataField="Department" HeaderText="Department/Organization" SortExpression="Department" ReadOnly="true"/>  
     <asp:BoundField DataField="Activity" HeaderText="Activity" SortExpression="Activity" ReadOnly="true"/>  
     <asp:TemplateField HeaderText="Food Form Received" 
      SortExpression="FoodFormReceived"> 
      <EditItemTemplate> 
       <asp:TextBox ID="tbFoodFormReceivedEditItemTemplate" runat="server" CssClass="datepickers" 
        Text='<%# DateTime.Now%>'> </asp:TextBox> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label1" runat="server" Text='<%# Bind("FoodFormReceived") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 
     </columns> 
    <FooterStyle BackColor="#CCCCCC" ForeColor="Black" /> 
    <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" /> 
    <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" /> 
    <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" /> 
    <AlternatingRowStyle BackColor="#DCDCDC" /> 
</asp:GridView> 
</asp:Content> 

回答

1

您可能想改为将代码中的文本框设置为datetime.now,而不是RowEditing。这样,绑定不会干涉。这可能是因为......

还,如果你这样做,你可能会得到更好的性能:

$("#<%= gvReservationsWithForms.ClientID %>") 
    .find("input[id$='tbFoodFormReceivedEditItemTemplate']").datepicker(); 

相反,所以你限制输入控件只在GridView,而不是整个页面。

+0

感谢布莱恩,我将使用.find 此外,虽然,这里是解决我的问题,这无关使用jQuery: “然后检查一下,如果你以后你加载网格内容点击更新按钮,听起来就是这样发生的。 在调试模式下运行你的代码,并在gvReservationsWithForms_RowUpdating事件和代码中设置gvReservationsWithForms gridview的数据源并查看哪一个首先被命中。赌注是网格正在重新加载数据之前的数据保存,因此日期总是DateTime.Now“ – user372225 2010-06-21 16:45:40

相关问题