从经典 .ASP 重复区域中调出正确的、个性化的模态菜单
Calling Up A Correct, Individual, Modal Menu from a Classic .ASP Repeat Region
我的表单中有一个注释部分,允许具有权限的用户向特定记录添加信息。此非部分的一部分必须允许用户删除自己的笔记或编辑自己的笔记。我似乎遇到的问题是当我添加一个 Jquery 模态菜单似乎确认删除时,我为每个笔记弹出菜单,所以如果我的记录中有 5 个笔记,这意味着弹出 5 个菜单我需要关闭。有没有什么方法可以让我定位正确的笔记,以便只显示其指定的菜单?
ASP 代码段:
<%
While ((Repeat1__numRows <> 0) AND (NOT RS_Notes.EOF))
%>
<%
Dim RS_Poster
Dim RS_Poster_cmd
Dim RS_Poster_numRows
Set RS_Poster_cmd = Server.CreateObject ("ADODB.Command")
RS_Poster_cmd.ActiveConnection = MM_Logistics_STRING
RS_Poster_cmd.CommandText = "SELECT EmpID, F_Name, L_Name FROM Employee INNER JOIN Notes ON Employee.EmpID = Notes.Emp_ID WHERE Notes.EMP_ID = "& RS_Notes.Fields.Item("Emp_ID").Value &""
RS_Poster_cmd.Prepared = true
Set RS_Poster = RS_Poster_cmd.Execute
RS_Poster_numRows = 0
%>
<tr>
<td colspan="4" id="Table-Row-Parent-Comments" ><br>
<div id="Table-Row-Child-CommentsTitle">
<div id="Table-Row-Child-CommentsTitle-Text">
Posted By:<%=(RS_Poster.Fields.Item("F_Name").Value)%> <%=(RS_Poster.Fields.Item("L_Name").Value)%> Date:<%=(RS_Notes.Fields.Item("Note_Date").Value)%>
<%If RS_Poster.Fields.Item("EmpID").Value = RS_User.Fields.Item("EmpID").Value Then%>
<div id="Table-Row-Child-CommentsTitle-Text-EditDelete">
<div align="right">
Edit/<a href="#" id="Table-Content-DeleteNotes-Link">Delete</a>
</div>
</div>
<%End If%>
</div>
</div>
<div id="Table-Row-Child-Comments">
<div id="Table-Row-Child-Comments-Text">
<p><%=(RS_Notes.Fields.Item("Note_Text").Value)%></p>
</div>
<br>
</div>
</td>
</tr>
<tr>
<td>
'SECTION OF MY CODE WHERE I ADD THE MODAL MENU FOR JQUERY
<form ACTION="<%=MM_noteDeleteAction%>" METHOD="POST" name="Modal-Menu-DeleteNote-Form" id="Modal-Menu-DeleteNote-Form">
<input type="hidden" name="MM_insert" value="Modal-Menu-DeleteNote-Form">
<input type="hidden" name="MM_delete" value="Modal-Menu-DeleteNote-Form">
<input type="hiddenx" name="MM_recordId" value="<%= RS_Notes.Fields.Item("Note_ID").Value %>">
<input type="submit" value="Delete"/>
</form>
</td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
RS_Notes.MoveNext()
Wend
%>
JQUERY 栏目:
//delete note
$("a#Table-Content-DeleteNotes-Link").click(function(){
$("form[id=Modal-Menu-DeleteNote-Form]").dialog("open");
})
$("form[id*=Modal-Menu-DeleteNote-Form]").dialog(
{
autoOpen:false,
modal:true,
width:800,
height:500,
title:"Delete Note",
show:{effect:"fade",duration:300},
hide:{effect:"fade",duration:300},
buttons:{
/* Delete:function(){
$("form[id=Modal-Menu-DeleteNote-Form]").submit();
},
Cancel:function(){
$("form[id=Modal-Menu-DeleteNote-Form]").dialog("close");
}*/
}
});
就目前而言,如果我只是点击在表单标签中创建的删除按钮,一切正常,它能够删除我想要的正确记录,我只是想添加一个模式菜单来确认删除特定记录而不让所有注释菜单同时出现,如下图所示。谢谢。
部分问题是您的所有表单都具有相同的 ID,因此当单击删除 link 时,它会打开具有相同 ID 的所有对象。
最好通过将此行从...
<form ACTION="<%=MM_noteDeleteAction%>" METHOD="POST" name="Modal-Menu-DeleteNote-Form" id="Modal-Menu-DeleteNote-Form">
...到...
<form ACTION="<%=MM_noteDeleteAction%>" METHOD="POST" name="Modal-Menu-DeleteNote-Form" id="Modal-Menu-DeleteNote-Form_<%= RS_Notes.Fields.Item("Note_ID").Value %>">
在这种情况下,我将 ID 更改为包含笔记 ID,但您可以改用索引变量,只是为了使其独一无二。
然后更改您的 link 和 JavaScript 以获得与删除相关的表单 link 单击,通过 ID 更改对表单的任何引用。
将您的 link 从...
更改为
<a href="#" id="Table-Content-DeleteNotes-Link">Delete</a>
...到...
<a href="#" id="Table-Content-DeleteNotes-Link" rel="<%= RS_Notes.Fields.Item("Note_ID").Value %>">Delete</a>
(这样我们就可以方便的在点击事件中查到ID)
所有参考资料都来自...
$("form[id=Modal-Menu-DeleteNote-Form]")
...到...
$("form[id=Modal-Menu-DeleteNote-Form_" + $(this).attr("rel") + "]")
当然,把它放在一个变量中会更好。
请注意,有多种方法可以完成上述操作,我建议的方法不一定是最有效的。
我的表单中有一个注释部分,允许具有权限的用户向特定记录添加信息。此非部分的一部分必须允许用户删除自己的笔记或编辑自己的笔记。我似乎遇到的问题是当我添加一个 Jquery 模态菜单似乎确认删除时,我为每个笔记弹出菜单,所以如果我的记录中有 5 个笔记,这意味着弹出 5 个菜单我需要关闭。有没有什么方法可以让我定位正确的笔记,以便只显示其指定的菜单?
ASP 代码段:
<%
While ((Repeat1__numRows <> 0) AND (NOT RS_Notes.EOF))
%>
<%
Dim RS_Poster
Dim RS_Poster_cmd
Dim RS_Poster_numRows
Set RS_Poster_cmd = Server.CreateObject ("ADODB.Command")
RS_Poster_cmd.ActiveConnection = MM_Logistics_STRING
RS_Poster_cmd.CommandText = "SELECT EmpID, F_Name, L_Name FROM Employee INNER JOIN Notes ON Employee.EmpID = Notes.Emp_ID WHERE Notes.EMP_ID = "& RS_Notes.Fields.Item("Emp_ID").Value &""
RS_Poster_cmd.Prepared = true
Set RS_Poster = RS_Poster_cmd.Execute
RS_Poster_numRows = 0
%>
<tr>
<td colspan="4" id="Table-Row-Parent-Comments" ><br>
<div id="Table-Row-Child-CommentsTitle">
<div id="Table-Row-Child-CommentsTitle-Text">
Posted By:<%=(RS_Poster.Fields.Item("F_Name").Value)%> <%=(RS_Poster.Fields.Item("L_Name").Value)%> Date:<%=(RS_Notes.Fields.Item("Note_Date").Value)%>
<%If RS_Poster.Fields.Item("EmpID").Value = RS_User.Fields.Item("EmpID").Value Then%>
<div id="Table-Row-Child-CommentsTitle-Text-EditDelete">
<div align="right">
Edit/<a href="#" id="Table-Content-DeleteNotes-Link">Delete</a>
</div>
</div>
<%End If%>
</div>
</div>
<div id="Table-Row-Child-Comments">
<div id="Table-Row-Child-Comments-Text">
<p><%=(RS_Notes.Fields.Item("Note_Text").Value)%></p>
</div>
<br>
</div>
</td>
</tr>
<tr>
<td>
'SECTION OF MY CODE WHERE I ADD THE MODAL MENU FOR JQUERY
<form ACTION="<%=MM_noteDeleteAction%>" METHOD="POST" name="Modal-Menu-DeleteNote-Form" id="Modal-Menu-DeleteNote-Form">
<input type="hidden" name="MM_insert" value="Modal-Menu-DeleteNote-Form">
<input type="hidden" name="MM_delete" value="Modal-Menu-DeleteNote-Form">
<input type="hiddenx" name="MM_recordId" value="<%= RS_Notes.Fields.Item("Note_ID").Value %>">
<input type="submit" value="Delete"/>
</form>
</td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
RS_Notes.MoveNext()
Wend
%>
JQUERY 栏目:
//delete note
$("a#Table-Content-DeleteNotes-Link").click(function(){
$("form[id=Modal-Menu-DeleteNote-Form]").dialog("open");
})
$("form[id*=Modal-Menu-DeleteNote-Form]").dialog(
{
autoOpen:false,
modal:true,
width:800,
height:500,
title:"Delete Note",
show:{effect:"fade",duration:300},
hide:{effect:"fade",duration:300},
buttons:{
/* Delete:function(){
$("form[id=Modal-Menu-DeleteNote-Form]").submit();
},
Cancel:function(){
$("form[id=Modal-Menu-DeleteNote-Form]").dialog("close");
}*/
}
});
就目前而言,如果我只是点击在表单标签中创建的删除按钮,一切正常,它能够删除我想要的正确记录,我只是想添加一个模式菜单来确认删除特定记录而不让所有注释菜单同时出现,如下图所示。谢谢。
部分问题是您的所有表单都具有相同的 ID,因此当单击删除 link 时,它会打开具有相同 ID 的所有对象。
最好通过将此行从...
<form ACTION="<%=MM_noteDeleteAction%>" METHOD="POST" name="Modal-Menu-DeleteNote-Form" id="Modal-Menu-DeleteNote-Form">
...到...
<form ACTION="<%=MM_noteDeleteAction%>" METHOD="POST" name="Modal-Menu-DeleteNote-Form" id="Modal-Menu-DeleteNote-Form_<%= RS_Notes.Fields.Item("Note_ID").Value %>">
在这种情况下,我将 ID 更改为包含笔记 ID,但您可以改用索引变量,只是为了使其独一无二。
然后更改您的 link 和 JavaScript 以获得与删除相关的表单 link 单击,通过 ID 更改对表单的任何引用。
将您的 link 从...
更改为<a href="#" id="Table-Content-DeleteNotes-Link">Delete</a>
...到...
<a href="#" id="Table-Content-DeleteNotes-Link" rel="<%= RS_Notes.Fields.Item("Note_ID").Value %>">Delete</a>
(这样我们就可以方便的在点击事件中查到ID)
所有参考资料都来自...
$("form[id=Modal-Menu-DeleteNote-Form]")
...到...
$("form[id=Modal-Menu-DeleteNote-Form_" + $(this).attr("rel") + "]")
当然,把它放在一个变量中会更好。
请注意,有多种方法可以完成上述操作,我建议的方法不一定是最有效的。