1

ボタンをクリックすると、コードビハインドから独自のファイルでjavascriptメソッドを呼び出そうとしています。

aspx ファイル

protected void Next_Click(object sender, EventArgs e)
{
    if (hidden.Value == "")
    {
        Response.Write(@"<script language='javascript'>drawImage();</script>");
    }
}

jsファイル

function drawImage() {
    context.drawImage(video, 0, 0, 320, 240);
    var imgBase = canvas.toDataURL('image/jpeg');
    document.getElementById("hidden").value = imgBase;
}

問題は、これが描画画像メソッドを呼び出さないことです.jsファイルが独自のファイルであると思われますが、わかりません.

あなたが与えることができるどんな助けも大歓迎です.

4

3 に答える 3

1

http://msdn.microsoft.com/de-de/library/z9h4dk8y.aspxを参照してください

これを試して

string jquery = "drawImage();"
 ClientScript.RegisterStartupScript(typeof(Page), "a key", 
     "<script type=\"text/javascript\">"+ jquery +"</script>"
               );
于 2014-05-14T13:15:41.970 に答える
0

あなたのページには既にスクリプト ファイルが含まれていると思います。

ポストバックが必要な場合は、ClientScriptManager.RegisterStartupScript Method (Type, String, String, Boolean) ..

protected void Next_Click(object sender, EventArgs e)
{
    if (hidden.Value == "")
    {
        ClientScriptManager cs = Page.ClientScript;
        cs.RegisterStartupScript(this.GetType(), 'startupScript', 'drawImage();', true);
    }
}

SOからの詳細情報


ポストバックなしで、ボタン自体から関数を呼び出すことができます。

<asp:Button runat="server" ID='next' OnClientClick="return drawImage();" />

そしてスクリプトで

function drawImage() {
    if(document.getElementById("hidden").value != undefined || document.getElementById("hidden").value != "")
    {
        context.drawImage(video, 0, 0, 320, 240);
        var imgBase = canvas.toDataURL('image/jpeg');
        document.getElementById("hidden").value = imgBase;
        return false;
    }
}
于 2013-05-07T04:12:02.993 に答える
0

1)。関数が外部ファイル (例: MyScript.js) に保存されている場合は、それを Web ページのセクションに含めて、次のようにボタンにイベントを<head>追加する必要があります。onclick

ButtonName.Attributes.Add("onclick", {YourFunction}); 

Page_Loadイベント中。

2) もう 1 つの方法は、javascript 関数全体を文字列変数に割り当て、それを {YourFunction} の代わりにjavascript:. この場合、外部ファイルさえ必要ありません。

それが役立つことを願っています。私のベスト、アレックス

于 2013-05-07T04:17:08.423 に答える