任何人都可以帮助我,因为我需要在vb.net代码中编写Javascript吗? 我的意思是我是vb.net编码的新手,我有一个动态创建的表来自web服务,对于那个表我需要添加排序函数,这是在javascript代码中,我需要将此脚本添加到动态创建表 我试过这个:
oSB.Append("table.RegisterStartupScript('SCRIPTNAME', '<script language='javascript'>function tname(){alert('kk')};</script>')")
但它似乎无法正常运作。
我也试过这个
'oSB.Append("<script>$('[id^=tname] th').live('click',function(event){ alert('hello')}</script>")
我的ajax功能:
$.ajax({
type: "POST",
url: "Service1.asmx/GetRecipie",
contentType: "application/json; charset=utf-8",
data: "{'sDB':'" + sDB + "'}",
dataType: "json",
success: OnGetMemberSuccess,
failure: function (errMsg) {
$('#errorMessage').text(errMsg); //errorMessage is id of the div
}
});
function OnGetMemberSuccess(data, status) {
xistr = data.d.split(',');
$("#MemberDetails").html(data.d);
$('input[type=button]').attr('disabled', false);
}
}
表格由此代码(webservice)创建:
oSB.Append("<table id= '" + table_id + "' class='sortable' ><thead><tr><th class=border id='tname' >" + "Name" + "<img src='next.gif'/></th><th class=border>" + "Duration" + "</th><th class=border>" + "State" + "</th><th class=border>" + "Party" + "</th><th class=border>" + "Year" + "</th></tr></thead>")
sNameValue = dr("sName").ToString
sDurValue = dr("sDuration").ToString
sStateValue = dr("sState").ToString
sPartyValue = dr("sParty").ToString
sYearValue = dr("sYear").ToString
oSB.Append("<tbody id=tbodyid'>")
' oSB.Append("<tr id='trid'>")
oSB.Append("<tr>")
oSB.Append("<td id='tdid' class=border1>")
oSB.Append(sNameValue)
oSB.Append("</td>")
oSB.Append("<td class=border1>")
oSB.Append(sDurValue)
oSB.Append("</td>")
oSB.Append("<td id='td_state' class=border1>")
oSB.Append(sStateValue)
oSB.Append("</td>")
oSB.Append("<td class=border1>")
oSB.Append(sPartyValue)
oSB.Append("</td>")
oSB.Append("<td class=border1>")
oSB.Append(sYearValue)
oSB.Append("</td>")
oSB.Append("</tr>")
oSB.Append("</tbody>")
End While
dr.Close()
con.Close()
oSB.Append("</table>")
'MsgBox(table.ToString)
Debug.Print(oSB.ToString)
有人可以告诉我哪里错了吗?
再次干杯
答案 0 :(得分:2)
你不能直接在vb.net代码中编写javascript。但是,您可以从vb.net代码注册并激活javascript。
试试这个
Page.RegisterClientScriptBlock("key","<script>alert('Hello World');</script>");
试试这个vb代码块:
Dim strScript As String = "<script>"
strScript += "alert('Hello, Pavan');"
strScript += "</script>"
Page.RegisterClientScriptBlock("strScript", strScript)
答案 1 :(得分:1)
你不能在vb.net代码中编写javascript代码。您可以在vb.net代码中添加/嵌入javascript代码以在客户端上执行。通常你需要在aspx页面中编写javascript代码。您可以使用 ScriptManager.RegisterClientScriptBlock从vb代码注册脚本。
答案 2 :(得分:1)
我可以看到你正在使用
$('[id^=tname] th').live('click'...
然而,从jQuery文档:
从jQuery 1.7开始,不推荐使用.live()方法。使用.on()来 附加事件处理程序。旧版jQuery的用户应该使用 .delegate()优先于.live()。 http://api.jquery.com/live/
除此之外,TH是一个非常糟糕的事件目标。因为您需要单击TH,而不是其中的文本。否则你的事件不会触发。
请参阅此处的标记: http://jsfiddle.net/4eXkT/2/
这应该有效。
实际上,您不需要在您的vb.net代码中嵌入任何javascript。只需在页面中包含一个javascript文件,然后使用jQuery的.on()
事件处理程序。如果您必须从您的Web服务管理javascript,请使用另一个端点来返回根据您的Web服务生成的代码使用的javascript。
如果您必须使用除最新jQuery之外的任何其他版本,请参阅上面提供的文档。