Manoj Jagdale Ответов: 0

Текстовое поле Datepicker не содержит введенного значения дата


я ввел диапазон дат, но datepicker принимает дату по умолчанию(текущую дату, как назначено) при сериализации данных.

Что я уже пробовал:

Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
     If Not Me.IsPostBack Then
         PickerFrom.SelectedDate = Today
         PickerTo.SelectedDate = Today
         'Me.Search()
         'Grid.DataBind()
     End If
 End Sub

 Private Sub Search()
     Dim strWhere As String = ""
     strWhere = "orderdate between '" & PickerFrom.SelectedDate.Value.ToString("MM/dd/yyyy") & "' and '" & PickerTo.SelectedDate.Value.AddDays(1).AddSeconds(-1).ToString("MM/dd/yyyy") & "' and OID=" & CStr(Filter.OrganisationId)
     Dim SqlCommand As New SqlCommand
     Dim connection As String = ConfigurationManager.ConnectionStrings("VService").ConnectionString
     Dim con As New SqlConnection(connection)
     SqlCommand.CommandText = "Custom_Analysers_PartSales_Freight"
     SqlCommand.Parameters.Add("@Type", SqlDbType.VarChar).Direction = ParameterDirection.Input
     SqlCommand.Parameters("@Type").Value = "Partsales"
     SqlCommand.Parameters.Add("@whereclause", SqlDbType.VarChar).Direction = ParameterDirection.Input
     SqlCommand.Parameters("@whereclause").Value = strWhere
     SqlCommand.CommandTimeout = 0
     SqlCommand.Connection = con
     SqlCommand.CommandType = CommandType.StoredProcedure
     Dim sqlDA As New SqlDataAdapter(SqlCommand)
     Dim ds As New DataSet
     sqlDA.Fill(ds)
     Grid.DataSource = ds.Tables(0).DefaultView
 End Sub

 Protected Sub Grid_NeedDataSource(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles Grid.NeedDataSource
     If PickerFrom.SelectedDate.HasValue Then
         Me.Search()
     End If
 End Sub

 Protected Sub Grid_PageIndexChanged(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridPageChangedEventArgs) Handles Grid.PageIndexChanged
     Grid.CurrentPageIndex = e.NewPageIndex
 End Sub

 Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSearch.Click
     Me.Search()
     Grid.DataBind()
 End Sub





<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<%@ Register Assembly="DotNetSmith.WebControls" Namespace="DotNetSmith.WebControls" TagPrefix="dns" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" TagPrefix="ajax" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">   
   <p>
      <dns:DotNetSmithUserMessageSummary ID="Umsg" runat="server" CssClass="MessageBlockError" />
   </p>
   <table cellspacing="4" cellpadding="0" border="0" width="100%">
        <tr>           
            <td align="right"><font color="red">All amounts are exclusive of tax</font></td>
        </tr>
   </table>
   <fieldset id="fdsExceptionTracking" runat="server">
   <legend>Parts Sales Analyser</legend>   
            <table cellspacing="4" cellpadding="0" border="0">
                <tr>
                <td align="right" width="35%">Select Date Range:</td>
                <td>
                    <telerik:RadDatePicker ID="PickerFrom" runat="server" Width="140px" DateInput-DateFormat="dd/MM/yyyy" SkinID="CustomRadDatePickerSkin"
                            DateInput-EmptyMessage="MinDate" MinDate="01/01/1000" MaxDate="01/01/3000">
                            <Calendar ID="Calendar1" runat="server">
                                <SpecialDays>
                                    <telerik:RadCalendarDay Repeatable="Today" ItemStyle-CssClass="rcToday" />
                                </SpecialDays>
                            </Calendar>
                        </telerik:RadDatePicker>
                </td>
                <td>To</td>
                <td>
                    <telerik:RadDatePicker ID="PickerTo" runat="server" Width="140px" DateInput-DateFormat="dd/MM/yyyy" SkinID="CustomRadDatePickerSkin"
                            DateInput-EmptyMessage="MaxDate" MinDate="01/01/1000" MaxDate="01/01/3000">
                            <Calendar ID="Calendar2" runat="server">
                                <SpecialDays>
                                    <telerik:RadCalendarDay Repeatable="Today" ItemStyle-CssClass="rcToday"  />
                                </SpecialDays>
                            </Calendar>
                    </telerik:RadDatePicker>
                </td>                
                <td><asp:Button ID="btnSearch" runat="server" Text="Search" /></td>
                </tr>        
            </table>

Richard Deeming

strWhere = "orderdate between '" & PickerFrom.SelectedDate.Value.ToString("MM/dd/yyyy") & "' and '" & PickerTo.SelectedDate.Value.AddDays(1).AddSeconds(-1).ToString("MM/dd/yyyy") & "' and OID=" & CStr(Filter.OrganisationId)


Не делай этого так! Ваш код почти наверняка уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов | OWASP[^]

Похоже, что ваша хранимая процедура использует динамический SQL без его параметризации. Вам нужно использовать процедуры sp_executesql[^] с правильно параметризованным запросом.

Manoj Jagdale

Хорошо, сэр, но может ли вышеприведенное решение решить мою проблему удержания значения в элементе управления datepicker.

Manoj Jagdale

Может быть, есть какое-то другое решение, Пожалуйста?

[no name]

Вы проверили, сохраняет ли ваш элемент управления значение, назначенное Вами при вызове функции "поиск". Вы установили значение по умолчанию для элементов управления датой на сегодня при предварительном рендеринге.

0 Ответов