在MVC3环境中,可以通过如下方法,实现扩展 public static MvcHtmlString CheckBoxList(this HtmlHelper helper, string name, IEnumerable<SelectListItem> selectList) 这样,输出至前台的时候,就是完整的Html控件
现在我在使用ligerUI控件,它的特点是必须编写JS代码来实现,如下所示
<script type="text/javascript">
$(function ()
{
$("#select2").ligerComboBox();
});
</script>
现在我想在输出控件的同时,也能够一并输出JS代码 ,现在我是这样处理的
public static MvcHtmlString LigerComboBox(this HtmlHelper helper, string dddwID) {
StringBuilder sb = new StringBuilder();
sb.Append("<script type=\"text/javascript\">");
sb.Append("$(function () {");
sb.Append("$('#" + dddwID + "').ligerComboBox();");
sb.Append("}");
sb.Append("</script>");
return MvcHtmlString.Create(sb.ToString());
}
结果是在dddwID控件的后面,直接输出JS代码,如下所示,但它并不想实现上述功能
<select name="select2" id="select2" >
<option value="opt1">Big Option test line with more wordssss</option>
<option value="opt2">Option 2</option>
<option value="opt3">Option 3</option>
<option value="opt4">Option 4</option>
<option value="opt5">Option 5</option>
<option value="opt6">Option 6</option>
<option value="opt7">Option 7</option>
<option value="opt8">Option 8</option>
</select>
<script type="text/javascript">
$(function () {$('#select2').ligerComboBox();}
</script>
完整的功能实现是在body实现控件输出,在head带实现JS输出,方法如何编写,还请指教?
你的 LigerComboBox 放在哪 就在哪输出啊, 你放到head中就行啊
<select name="select2" id="select2" >
<option value="opt1">Big Option test line with more wordssss</option>
<option value="opt2">Option 2</option>
<option value="opt3">Option 3</option>
<option value="opt4">Option 4</option>
<option value="opt5">Option 5</option>
<option value="opt6">Option 6</option>
<option value="opt7">Option 7</option>
<option value="opt8">Option 8</option>
</select>
<script type="text/javascript">
$(function () {$('#select2').ligerComboBox();}
</script>
这样写,没有效果的
@Vincent.Q:
调式一下,看看 有没有触发
@Qlin: 这就是输出后的源码,木有效果的.
@Vincent.Q:
浏览器中 js 进行调试。
后台 生成html,再发送给浏览器,浏览器解析,按理应该可以
@Qlin: 知道什么问题了!
<script type="text/javascript">
$(function () {$('#select2').ligerComboBox();}
</script>
上面代码改成下面这样就OK了
<script type="text/javascript">
$('#select2').ligerComboBox();
</script>