我有一个用户列表,在表中每一行的末尾我添加了两个链接(“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");
网站缩进看起来很糟糕,但用户的删除行工作正常,为什么?
谢谢...