Привязка выбранного значения в ASP datepicker к formview в ASP.NET

#c# #asp.net #data-binding #formview

#c# #asp.net #привязка данных #formview

Вопрос:

У меня есть всплывающее средство выбора даты, которое вставляет выбранную дату в текстовое поле. Моя проблема в том, что я не могу привязать его к asp.net элемент управления текстовым полем. В настоящее время я следую этому, но он показывает ошибку «Имя ‘dateborrowedTextBox’ не существует в текущем контексте». Я хочу, чтобы оно привязывало выбранное значение к текстовому полю в formview, чтобы я мог добавить его в базу данных.

Вот пример моей вставки элемента управления formview

 <InsertItemTemplate>
            Book Title:
            <asp:DropDownList ID="DropDownList1" runat="server" 
                DataSourceID="booktitleDataSource" DataTextField="booktitle" 
                DataValueField="bookid" SelectedValue='<%# Bind("bookid", "{0}") %>'>
            </asp:DropDownList>
            <asp:SqlDataSource ID="booktitleDataSource" runat="server" 
                ConnectionString="<%$ ConnectionStrings:LibrarySystemConnectionString %>" 
                SelectCommand="SELECT [bookid], [booktitle] FROM [TblBooks]">
            </asp:SqlDataSource>
            <br />

            Employee PIN:
            <asp:TextBox ID="employeeidTextBox" runat="server" 
                Text='<%# Bind("employeeid") %>' />
            <br />

            Department:
            <asp:TextBox ID="departmentTextBox" runat="server" 
                Text='<%# Bind("department") %>' />
            <br />

            <%--I want to the selected value in datepicker to bind it here --%>
            Date borrowed:
            <asp:TextBox ID="dateborrowedTextBox1" runat="server" 
                Text='<%# Bind("dateborrowed") %>' />

            <%--date picker --%>
            <input type="text" name="dateborrowedTextBox" readonly id="dateborrowedTextBox"> 
            <a href="#" onClick="cdp1.showCalendar(this, '<% = dateborrowedTextBox.ClientID %>'); return false;">Date Picker</a>       
            <br />

            <asp:Button ID="InsertButton" runat="server" CausesValidation="True" 
                CommandName="Insert" Text="Insert" />
            <asp:Button ID="InsertCancelButton" runat="server" CausesValidation="False" 
                CommandName="Cancel" Text="Cancel" />
        </InsertItemTemplate>
  

Помощь была бы высоко оценена.
Заранее спасибо.

Ответ №1:

Сделайте свой элемент управления вводом серверным элементом управления, добавив runat="server" к элементу управления, а затем используйте value property .

 <input type="text" runat="server" value='<%# Bind("dateborrowed") %>' name="dateborrowedTextBox" readonly id="dateborrowedTextBox">
  

Комментарии:

1. Спасибо! Это сработало, но в нем все еще есть ошибка. Ошибка: ‘this._targetEl.value. длина’ равна нулю или не является объектом

2. Я думаю, что это какая-то другая ошибка, отличная от приведенного выше решения. Эта проблема возникает у вас после внедрения моего решения?

3. Да. Нет проблем, когда я не связываю их вместе. Я думаю, что с моей стороны произошла какая-то ошибка. Я проверю

4. Кстати, могу ли я спросить, есть ли способ, которым я мог бы получить значение вместо этого? Я имею в виду, что в типе ввода = text как я могу получить значение и передать его в asp: TextBox.

5. ((System.Web.UI.HtmlControls. htmlputtext)detailsView1.FindControl(«dateborrowedTextBox»)).Значение