1

私は自分のウェブサイトでajaxカレンダーエクステンダーを使用しています。

 <table border="0" cellpadding="0" cellspacing="0">
                                        <tr>
                                            <td>Active From: <asp:TextBox ID="inputActiveFromDate" runat="server"></asp:TextBox> 
                                                <cc1:CalendarExtender ID="CalendarExtender1" runat="server" TargetControlID="inputActiveFromDate" PopupButtonID="btn_Calendar1"   Format="dd/MM/yyyy 00:00:00"></cc1:CalendarExtender>
                                                <asp:ImageButton runat="server" ID="btn_Calendar1" ImageUrl="../images/buttons/Lock_icon.gif" />
                                            </td>
                                            <td width="20"></td>
                                            <td>Active Until: <asp:TextBox ID="inputActiveUntilDate" runat="server"></asp:TextBox>
                                                <cc1:CalendarExtender ID="CalendarExtender2" runat="server" TargetControlID="inputActiveUntilDate"  PopupButtonID="btn_Calendar2"  Format="dd/MM/yyyy 23:59:59"></cc1:CalendarExtender>
                                                <asp:ImageButton runat="server" ID="btn_Calendar2" ImageUrl="../images/buttons/Lock_icon.gif" />
                                            </td>
                                        </tr>
                    </table>

すべてが正常に機能していますが、すべてのブラウザでこのエラーが発生しています。

> Unable to set value of the property 'PopupBehavior': object is null or
> undefined

私が解決するのを手伝ってください

エラーが発生します

// Name:        MicrosoftAjax.debug.js
// Assembly:    AjaxControlToolkit
// Version:     4.1.50508.0
// FileVersion: 4.1.50508
// (c) 2010 CodePlex Foundation

initialize: function Behavior$initialize() {
        Sys.UI.Behavior.callBaseMethod(this, 'initialize');
        var name = this.get_name();
        if (name) this._element[name] = this;// error place <---
    },

私のCSコード:

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConn"].ToString())){

String  sql = "INSERT INTO tablename (SDate,EDate) VALUES ('" + Convert.ToDateTime(inputActiveFromDate.Text) + "','" + Convert.ToDateTime(inputActiveUntilDate.Text) + "'); SELECT  @@IDENTITY;";conn.Open();
                    SqlCommand comm = new SqlCommand(sql, conn);    
                    comm.ExecuteNonQuery();
                   // int lastId = Convert.ToInt32(comm.ExecuteScalar());
                    conn.Close();




                }
4

1 に答える 1

0

この問題は、PopupButtonIDオプションを使用していて、テキストボックスIDを渡したことが原因だと思います。

このオプションを削除するか、実際のボタンのIDを渡す必要があります

<asp:TextBox ID="inputActiveUntilDate" runat="server"></asp:TextBox>
<cc1:CalendarExtender ID="CalendarExtender2" runat="server" TargetControlID="inputActiveUntilDate" Format="dd/MM/yyyy 23:59:59"></cc1:CalendarExtender>

また

<asp:TextBox ID="inputActiveUntilDate" runat="server"></asp:TextBox>
<cc1:CalendarExtender ID="CalendarExtender2" runat="server" TargetControlID="inputActiveUntilDate" PopupButtonID="btn_Calendar" Format="dd/MM/yyyy 23:59:59"></cc1:CalendarExtender>
<asp:ImageButton runat="server" ID="btn_Calendar" ImageUrl="PathToACalendarButton" />

編集:

SQLインジェクションのリスクについてはよくわかりませんが、コードで間違いなく可能であるように思われます。ストアドプロシージャなどのパラメータ化されたクエリの使用を検討することをお勧めします。

于 2012-05-01T01:39:24.810 に答える