0

テーブルの各行の最後に 2 つのリンク ("href") を追加したユーザーのリストがあります。1 つは「更新」ユーザー用、2 番目は「削除」ユーザー用です。そのため、ユーザーのIDを取得して以前に作成したフォーム(「非表示」フィールドが1つだけのフォーム)に挿入するjavascript関数の呼び出しを追加し、関数がサーバーへのsubmit()操作をアクティブにしたことを有効にします一部 (asp.net コード)。

私がチェックしたところ、submit() 操作は問題なく動作します (respons.write() でチェック...)

しかし、送信ボタンの値を尋ねることで IsPost 内の送信フォーム ボタンを認識する方法を知っています (例: if(Request.Form["ExpertButton"]== "delete"){..some code here... .})

しかし、javascript で submit() を有効にすると、どうすれば投稿を認識できますか? hiiden フィールドの値を試してみましたが、これがキャプチャされず、if ステートメントがスキップされました....

ユーザーコードのリスト:

foreach(var row in db.Query(displayExperts,nameOfExpert))
                {
                <tr>
                    <td class="dispExpertActScreen">@row.ExpertID</td>
                    <td class="dispExpertActScreen">@row.name</td>
                    <td class="dispExpertActScreen">@row.password</td>
                    <td class="dispExpertActScreen">@row.allowBonds</td>
                    <td class="dispExpertActScreen">@row.allowStocks</td>
                    <td class="dispExpertActScreen">@row.allowExchangeTraded</td>
                    <td class="dispExpertActScreen">@row.allowMutualFund</td>
                     <td class="dispExpertActScreen"><a href="#" onclick="expertToDelete('@row.ExpertID') ;return false;" style="color: #b04e4e">update</a></td>
                    <td class="dispExpertActScreen"><a href="#" onclick="expertToDelete('@row.ExpertID') ;return false;" style="color: #b04e4e">delete</a></td>
                </tr>
                }

フォームコード:

<form method="post" name="deleteExpert" style="font-size: medium; margin-top: 10%" dir="rtl">
    <input type="hidden" name="expertID" id="expertID" value="">
</form> 

JavaScript コード:

<script>

    function expertToDelete(expertID) {

        document.getElementById('expertID').value = expertID;
        document.getElementById('deleteExpert').submit ();
    }


</script>

asp.net コード:

@{
    var db = Database.Open("MyProjectSite");
    var display="no";
    var displayExperts="";
    var nameOfExpert="";
    var category="";
     if(IsPost)
    {
        if(Request.Form["ExpertButton"]== "search")// this is by button!!!
        {
             some code.....

        }

       //Response.Write("^^^^^^^^^^^^^^^^^^^^^");
        if(Request.Form["ExpertButton"] != "")// this need to be by javascript submit() method !!! here I need to recognize it.
        {
           var id=Request.Form["expertID"];
           Response.Write("^^^^^^^^^^^^^^^^^^^^^"+id);
           var deleteQuery="DELETE FROM InvestmanExperts WHERE ExpertID=@0";
           db.Execute(deleteQuery,id);
        }
    }
    db.Close();
}

ありがとう...

4

1 に答える 1

0

別の隠された入力値を入れてみませんか:

<input type="hidden" name="txtJavascriptMode" id="txtJavascriptMode" value="">

次に、JavaScriptコードで:

<script>
    function expertToDelete(expertID) {

        document.getElementById('expertID').value = expertID;
        document.getElementById('txtJavascriptMode').value = 'true';
        document.getElementById('deleteExpert').submit ();
    }
</script>

サーバーサイドでチェックアウトできます

if(Request["txtJavascriptMode"] == "true")
{}
于 2012-12-02T09:28:12.763 に答える