【问题标题】:Error: 'this._targetEl.value.length' is null or not an object ASP.NET错误:“this._targetEl.value.length”为空或不是对象 ASP.NET
【发布时间】:2011-05-13 00:32:14
【问题描述】:

我正在尝试将日期选择器中的选定值绑定到 asp 文本框,但出现此错误:“this._targetEl.value.length”为空或不是对象。

代码如下:

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

当我工作的时候 尝试使用&lt;input type="text" name="dateborrowed" readonly="readonly" id="dateborrowedTextBox"&gt;,但是当我尝试使用 asp:TextBox 时,我无法将所选值从日期选择器传递到文本框。那么我哪里做错了?有没有办法对日期选择器链接进行编程以调用弹出日历? (顺便说一句,它在 Java 中)

我们将不胜感激! 提前致谢。

【问题讨论】:

    标签: c# javascript asp.net


    【解决方案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>
    

    【讨论】:

    • 嗯,它出错了。 System.NullReferenceException:对象引用未设置为对象的实例。应该是我想的那个javascript,我又查了一下……
    【解决方案2】:

    找到了解决办法。我认为它只能读取 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>
    

    【讨论】:

      猜你喜欢
      • 2010-09-08
      • 2010-09-14
      • 1970-01-01
      • 2011-05-01
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多