0

我有一个用户列表,在表中每一行的末尾我添加了两个链接(“href”):一个用于“更新”用户,第二个用于“删除”用户。因此,为了启用,我添加了对捕获用户 ID 并将另一个字段设置为“true”并将这些值插入到我之前创建的某个表单(只有两个“隐藏”字段的表单)的 javascript 函数的调用,然后函数激活 submit() 操作到服务器部分(asp.net 代码)。

我检查了 submit() 操作正常(检查了 respons.write("-----")...)

但是我知道如何通过询问提交按钮的值来识别 IsPost 中的提交表单按钮(例如: if(Request.Form["ExpertButton"]== "delete"){..some code here... .})

但是当我用 javascript 激活 submit() 时,我怎么能识别帖子?我尝试了隐藏字段的值,但它没有捕捉到它,它跳过了 if 语句......

我在调试时发现的另一个问题是,当函数 submit() 发生时,浏览器(IE9)会抛出错误......

用户代码列表:

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="">
    <input type="hidden" name="txtJavascriptMode" id="txtJavascriptMode" value="">
</form> 

功能:

<script>

    function expertToDelete(expertID) {

        document.getElementById('expertID').value = expertID;
        document.getElementById('txtJavascriptMode').value = 'true';
        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["txtJavascriptMode"] == "true")
         {
            var id=Request.Form["expertID"];
            var deleteQuery="DELETE FROM InvestmanExperts WHERE ExpertID=@0";
            db.Execute(deleteQuery,id);
         }
    }
    db.Close();
}

另一个奇怪的事情是当我放这行时:

Response.Write("----"+Request.Form["txtJavascriptMode"]);

前:

if(Request.Form["txtJavascriptMode"] == "true");

网站缩进看起来很糟糕,但用户的删除行工作正常,为什么?

谢谢...

4

1 回答 1

0

隐藏字段应该可以正常工作。尝试将 id 添加deleteExpert到您的表单中。

于 2012-12-02T12:36:50.573 回答