2011-05-13 74 views
2

我试图绑定从日期选择器到asp文本框的选定值,但我有这个错误:'this._targetEl .value.length'为空或不是对象。错误:'this._targetEl.value.length'为空或不是对象ASP.NET

下面的代码:

<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 /> 

    Date borrowed: 
    <asp:TextBox ID="dateborrowedTextBox" runat="server" Text='<%# Bind("dateborrowed") %>' /> 
<%--<input type="text" name="dateborrowedTextBox" readonly="readonly" id="dateborrowedTextBox">--%> 
    <a href="#" onclick="cdp1.showCalendar(this, 'dateborrowedTextBox'); 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> 

这是工作,当我 尝试使用<input type="text" name="dateborrowed" readonly="readonly" id="dateborrowedTextBox">但是当我尝试使用ASP:文本框,我不能从日期选择器选择的值传递到文本框。那么我哪里错了?有没有办法编程日期选择器链接来调用弹出日历? (它在Java btw)

帮助将不胜感激! 在此先感谢。

回答

0

找到了解决办法。我认为它只能阅读asp.net语法不经典的asp。

<asp:TextBox ID="reservedateTextBox" runat="server" Text='<%# Bind("reservedate") %>' /> 
<%--Date Picker--%> 
<a href="#" onclick="cdp1.showCalendar(this,'ctl00$ContentPlaceHolder1$FormView2$reservedateTextBox'); return false;">Date Picker</a> 
1

呈现时,嵌套控件的ID /名称属性被绝对唯一ID /名称覆盖。当你的JavaScript试图引用TextBox时,它的名字实际上不会是'dateborrowedTextBox',它将会像'... $ ctl00 $ dateborrowedTextBox'一样。

如果JavaScript是用域名来控制,这可能清理问题:

<a href="#" onclick="cdp1.showCalendar(this, '<%#Container.FindControl("dateborrowedTextBox").UniqueID%>'); return false;">Date Picker</a> 

否则试试这个,如果它通过ID找到控制:

<a href="#" onclick="cdp1.showCalendar(this, '<%#Container.FindControl("dateborrowedTextBox").ClientID%>'); return false;">Date Picker</a> 
+0

谢谢!我会试一试。 – Loupi 2011-05-13 03:07:08

+0

嗯,它有一个错误。 System.NullReferenceException:未将对象引用设置为对象的实例。它必须是我认为的JavaScript,我再次检查它... – Loupi 2011-05-13 03:18:32

相关问题