我正在使用如下的用户控件(.ascx)
<div class="ui-widget" id="w_instruction">
<div class="ui-state-instruction ui-corner-all w-msg">
<a id="btn_instruction_close" class="ui-dialog-titlebar-close ui-corner-all" href="#" style="float:right;"><img src="../../Images/i_close_blue.png" border="0"/></a>
<img src="../../Images/i_info_24.png" align="absmiddle"/>
<span id="i_msg"></span>
</div>
</div> // this code goes in to instruction.ascx
在我的aspx页面中,我正在使用此用户控件,如下所示。
<%Html.RenderPartial("Instruction"); %>
并使用jquery我正在更改div中的消息。
<script type="text/javascript">
$("#i_msg").text("Please Enter the Infringement Details.");
</script>
工作正常。但现在我想在页面的两个不同位置使用此用户控件。 我需要一些方法来区分两个地方的用户控制。任何一个过程都是受欢迎的。
注意 - 我正在使用ASP.net MVC 2应用程序
答案 0 :(得分:0)
将div中的每个部分包裹在不同ID中,然后只使用IDS:
var targetA = $("#divA #i_msg");
var targetB = $("#divB #i_msg");
然而,请注意,这是完全错误的。您不应该在页面上有重复的ID,因为它是无效的标记。您应该应用类名而不是ID:
<div id="divC">
/* Created by RenderPartial */
<div class="ui-widget">
<div class="ui-state-instruction ui-corner-all w-msg">
....
<span class="msg"></span>
</div>
</div>
</div>
因此,当您将此包装在另一个ID为divC
的div中时,您会选择以下内容:
var targetB = $("#divC .msg");
答案 1 :(得分:0)
我建议您使用强类型控件:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<div class="ui-widget" id="w_instruction">
<div class="ui-state-instruction ui-corner-all w-msg">
<a id="btn_instruction_close" class="ui-dialog-titlebar-close ui-corner-all" href="#" style="float:right;">
<img src="../../Images/i_close_blue.png" border="0"/>
</a>
<img src="../../Images/i_info_24.png" align="absmiddle"/>
<span id="i_msg"><%= Html.Encode(Model) %></span>
</div>
</div>
然后将控件包含在具有不同模型的不同位置:
<% Html.RenderPartial("Instruction", "text 1"); %>
和另一个地方:
<% Html.RenderPartial("Instruction", "text 2"); %>
如果你需要使用javascript修改文本,请用具有特定id的div包装用户控件并使用类选择器。