Поле обновления DateTime в C # GridView - PullRequest
2 голосов
/ 28 августа 2009

Я бы хотел разделить DateTime для отображения и обновления в GridView. Как я рекомбинирую их в UpdateParameters SqlDataSource?

Например

<asp:SqlDataSource ID="uxTravelTripMeetingDataSource" runat="server" 
            ConnectionString="<%$ ConnectionStrings:MGO %>" 
            ProviderName="<%$ ConnectionStrings:MGO.ProviderName %>" 
            SelectCommand="select * from v_travel_meeting t where travel_trip_id = :travel_trip_id" 
            UpdateCommand="update travel_prospect set person = :person, meeting_date = :meeting_date where prospect_id = :prospect_id and travel_trip_id = :travel_trip_id "
            <SelectParameters>
                <asp:QueryStringParameter Name="travel_trip_id" QueryStringField="id" />
            </SelectParameters>
            <UpdateParameters>
                <asp:Parameter Name="person" />
                <asp:Parameter Name="prospect_id" />
                <asp:Parameter Name="travel_trip_id"/>
                <asp:Parameter Name="meeting_date" Type="DateTime" />
            </UpdateParameters>
        </asp:SqlDataSource>

        <asp:GridView ID="uxTravelTripMeetingGridView" runat="server" 
            DataSourceID="uxTravelTripMeetingDataSource" AutoGenerateColumns="False" 
            DataKeyNames="travel_trip_id,prospect_id">
            <Columns>
                <asp:CommandField ShowEditButton="True" />
                <asp:TemplateField HeaderText="Prospect">
                <ItemTemplate>
                   <a href="something.aspx?prospectid=<%# Eval("prospect_id") %>&height=500&width=600" title="caption" class="thickbox" ><%# Eval("prospect_name")%>
                </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="person" HeaderText="Person" />                    
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" 
                            Text='<%# Bind("meeting_date", "{0:d}") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" 
                            Text='<%# Bind("meeting_date", "{0:d}") %>' />
                    </EditItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" 
                            Text='<%# Bind("Meeting_time") %>'></asp:Label>&nbsp;
                        <asp:Label ID="Label4" runat="server" 
                            Text='<%# Bind("Meeting_am_pm") %>'></asp:Label>
                    </ItemTemplate>
                    <EditItemTemplate>
                                <asp:ObjectDataSource ID="ds15Min" runat="server" OldValuesParameterFormatString="original_{0}"
            SelectMethod="DDLFifteenMin" TypeName="App" />

                        <asp:DropDownList ID="DropDownList2" runat="server" 
                        DataSourceID="ds15Min" DataTextField="time" DataValueField="display" 
                            SelectedValue='<%# Bind("meeting_date","{0:t}") %>' >
                              <asp:ListItem Value=" "> </asp:ListItem>
                            </asp:DropDownList>
                    </EditItemTemplate>
                </asp:TemplateField>
            </Columns>

        </asp:GridView>

Спасибо!

1 Ответ

1 голос
/ 28 августа 2009

Команда обновления:

update travel_prospect set person = :person, meeting_date = DATEADD(n,@Date,@Time) 
where prospect_id = :prospect_id and travel_trip_id = :travel_trip_id

Параметры обновления:

<asp:Parameter Name="Date" Type="DateTime" />
<asp:Parameter Name="Time" Type="String" />

Теперь это решение означает, что вы должны ввести или рассчитать временную часть даты в минутах (это то, что означает n в DATEADD), чтобы правильно ее создать. Как вы это делаете, зависит от вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...