3

ボタンをクリックすると、JavaScript 関数が呼び出されます。値を取得したら、コード ビハインドで取得した値から何かを実行する必要があります。コード ビハインドを呼び出すにはどうすればよいですか?

私のaspx:

function openWindow(page) {
  var getval = window.showModalDialog(page);
  document.getElementById("<%= TxtInput.ClientID %>").value = getval; 
  //After this I need to perform stuff 'Upload(TxtInput.value)' into database from the code-behind
}

関数を呼び出すボタンは、次のように設定されます。

<button class="doActionButton" id="btnSelectImage" runat="server" onclick="openWindow('../rcwksheet/popups/uploader.htm')">Select Image</button>

私の希望のコードビハインド (VB):

Public Sub btnSaveImage_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSelectImage.ServerClick
  Dim inputFile As String = Me.TxtInput.Value
  //do more stuff here
End Sub

そう:

  1. JavaScript から分離コードを呼び出す方法はありますか?
  2. ボタンの「onclick」プロパティを使用して、最初に JavaScript に移動し、次にコード ビハインドに移動することはできますか?
  3. TxtInput.Value のコード ビハインド コール「onchange」をトリガーしますか?
4

3 に答える 3

1

はい、方法があります。

まず、戻り値が に設定された後、javascript を使用してフォームを送信できますTxtInput

function openWindow(page) {
  var getval = window.showModalDialog(page);
  document.getElementById("<%= TxtInput.ClientID %>").value = getval; 
  document.forms[0].submit();
}

次に、コード ビハインドで、TxtInputページ読み込みイベントで の値を処理できます。

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        if (this.Input.Value != string.Empty)
        {
            this.Input.Value += "blah";
        }
    }
}

注:ポストバックの原因となった識別制御が必要な場合があります

于 2012-05-19T06:21:14.710 に答える
0

サーバー側のコードをWebサービスに配置し、aspxページのasp:ScriptManagerでサービス参照を作成してから、次を呼び出すことでjavascriptからWebサービスを呼び出し/実行できます。

WebServiceClassName.MethodName(javascriptvariable, doSomethingOnSuccess)

これを行うためのリンクは次のとおりです。

http://msdn.microsoft.com/en-us/magazine/cc163499.aspx

于 2012-05-19T05:38:49.007 に答える
0

__doPostBack イベントを呼び出すことができます。

function openWindow(page) {
  var getval = window.showModalDialog(page);
  document.getElementById("<%= TxtInput.ClientID %>").value = getval; 
__doPostBack('btnSelectImage', getval);
}

コードビハインドのサーバー側では、値を取得できます。

PageLoad メソッドでは:

if (Request.Form["__EVENTTARGET"] == "btnSelectImage")
{
    //get the argument passed
    string parameter = Request["__EVENTARGUMENT"];
    //fire event
    btnSaveImage_Click(this, new EventArgs());
}
于 2012-05-19T06:28:31.623 に答える