0

そのため、C# を使用して jQuery を動的に生成し、それを Web ページに送信しています。 問題は、ファイルと Js Fiddle に従って正しい jQuery を生成しているように見えますが、実際にはページで機能しません。

jsFiddle はこちらhttp://jsfiddle.net/ER2hE/

ここで、javacript を Web サイトに送信する方法を調べました。このように動作するはずです。 http://msdn.microsoft.com/en-us/library/bb359558.aspx

それを行う私のコードはこのメソッドです

    private void sendScript(string script)
    {
        const string someScript = "alertMe";
        //send the built script to the website.
        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), someScript, script, true);
    }

これは非常に単純で、他のコード呼び出しでも機能しました。しかし、この例ではそうではありません。

それを呼び出すコードは、私のC#ではこれです

    private void populateGroups()
    {
        //this generates correct javascript according to the file and JS fiddle but unfortunately doees not work.

        string splitme = "USE ACES SELECT GroupName, GroupID FROM PrimaryGroup ORDER BY GroupName";
        DataTable dt = fillDataTable(splitme);
        string script = "";

        foreach (DataRow dr in dt.Rows)
        {
            //add the locations to the <select> box
            script += " $('#groupList').append('<option value=\" " + dr.ItemArray[1].ToString() + " \"> " + dr.ItemArray[0].ToString() + " </option>');  ";
        }

        sendScript(script);
        JSErrorLog(script, "GROUPS");
}

すべてが起動時に呼び出されています

    protected void Page_Load(object sender, EventArgs e)                
    {
        if (this.IsPostBack == false)
        {
            populateMakes();
            populateLocation();
            populateGroups();
        }
    }

その生成するjQueryはJSFiddleでも機能します。ここで呼び出しているメソッドで生成するjavascriptを記述するメソッドからこれを引き出しています。これはフィドルJSErrorLogです。

http://jsfiddle.net/ER2hE/

ああ、私のaspxファイルのhtmlは次のようになります

    <div class="row2">
       <span>Group</span>
        <select id="groupList" multiple="multiple" onclick="setGroups()" class="normalsize">
        </select>
    </div>

それがすべてだと思います。自分のものが機能するようにしたいだけです。追加のコードがあれば喜んで投稿します。お尋ねください。なぜ機能しないのかについての考えがあれば、私に知らせてください。

4

2 に答える 2

1

実際にそのコードを実行するのはいつですか? ID「groupList」を持つ要素がDOMに存在する前または後に? 私の推測では前です。

解決?コードを document.ready ハンドラー内にラップします。

jQuery(function($) {
     $('#groupList').append('<option value=" 46 "> AC Units </option>');
     // etc etc
});
于 2013-08-30T16:13:12.513 に答える
0

単純な文字列 js コードを返します。そして eval() で実行します

于 2013-08-30T23:48:33.507 に答える