0

1つのテキストボックス(最新のUIバージョンではなく、オートコンプリート1.1を使用)とチェックボックスがあると想像してください。テキストボックスは、sql-serverでストアドプロシージャを実行して結果を返すasp.net.ashxページをトリガーします。

すべて動作していますが、別の機能を追加したいと思います。チェックボックスがオンになっている場合、stored_procedure_1を実行します。チェックボックスがオフの場合、stored_procedure_2を実行する必要があります。チェックボックスはデフォルトでオフになっています。

私の質問:チェックボックスがチェックされているかどうかをashxページに伝えるにはどうすればよいですか..?デフォルトでは、オートコンプリートはautocompletedata.ashx?q = mynameのようなものをトリガーし、stored_procedure_2を実行しますが、チェックボックスautocompletedata.ashx?q=myname&mycheckbox=beginをオンにすると、stored_procedure_1が実行されるようにトリガーする必要があります。

チェックされたチェックボックスを渡すためにjQueryコードを追加する必要がありますか?私は完全に失われました。

前もって感謝します。

フォーム要素:

<input id="search_employee" type="text" class="employee" />
<input type="checkbox" name="mycheckbox" value="begin" />

jQuery:

 $().ready(function() {

        $("#search_employee").autocomplete("includes/AutocompleteData.ashx", {
            minChars: 3,
            max: 15,
            selectFirst: false,
            scrollHeight: 300,
            formatItem: function(data, i, n, value) {
            if (value.split("_")[3]!== null)
            {
            return "<img style = 'width:40px;height:53px;float:left; margin:2px 5px 2px 0' src='/pictures/thumbs/"
            + value.split("_")[3] + "'/> " + value.split("_")[0] + "<br /><span class=smallname>" + value.split("_")[2] + "<br/>" + value.split("_")[4] + "</span>";
        } 
    },
            formatResult: function(data, value) {
                return value.split("_")[0];
            }
        });

autocompletedata.ashxの一部:

Dim searchname As String = context.Request.QueryString("q")
Dim searchstart as string = context.Request.QueryString("mycheckbox")
Dim searchsql as string

if searchstart = "begin" then
   searchsql = "stored_procedure_1"
else
   searchsql = "stored_procedure_2"
end if

Dim conn As SqlConnection = New SqlConnection
conn.ConnectionString = ConfigurationManager.ConnectionStrings("MyConn").ConnectionString
Dim cmd As SqlCommand = New SqlCommand
cmd.CommandType = Data.CommandType.StoredProcedure
cmd.CommandText = searchsql.ToString
cmd.Parameters.AddWithValue("@SearchText", searchname)         
4

1 に答える 1

1

.setOptionsを使用して、追加のパラメーターを設定できます。

ac.setOptions({ params: { paramOne:'somevalue', somethingelse:'foobar' } });

それはプログラム的な方法ですが、あなたの場合:

$("#search_employee").autocomplete("includes/AutocompleteData.ashx", {
   params: { flag:'true' }, // just grab the checked attr beforehand
     ...//rest of your AC stuff

これにより、次の HTTP GET が実行されます。

GET: includes/AutocompleteData.ashx?flag=true

Request.QueryStringASHXのコレクションを介してアクセスできるようにします。

編集

私の悪い - AC の別のバージョンを考えていた。

パラメータは「extraParams」と呼ばれていると思います:

$("#search_employee").autocomplete("includes/AutocompleteData.ashx", {
   extraParams: { flag:'true' }

両方を試してみてください。:)

HTH。

于 2010-10-26T11:52:21.227 に答える