【问题标题】:How to write java script in vb.net code? [closed]如何在 vb.net 代码中编写 javascript? [关闭]
【发布时间】:2012-12-23 03:17:50
【问题描述】:

由于我需要在 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)

谁能告诉我哪里错了?

再次欢呼

【问题讨论】:

  • 请谷歌搜索一下?

标签: javascript jquery vb.net


【解决方案1】:

您不能直接在 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)

【讨论】:

【解决方案2】:

您不能在 vb.net 代码中编写 javascript 代码。您可以在 vb.net 代码中添加/嵌入 javascript 代码以在客户端上执行。通常您需要在 aspx 页面中编写 javascript 代码。您可以使用 ScriptManager.RegisterClientScriptBlock从vb代码注册脚本。

【讨论】:

  • 我尝试使用这些链接,但似乎不起作用 forums.asp.net/t/1382342.aspxdotnetspider.com/forum/…
  • 我昨天回答了你类似的问题,你试过解决方案了吗?
  • 我这里没有使用 aspx 页面,我只有一个调用 web 服务的 html 页面,并且表格是在 web 服务页面中动态创建的,我根本不想使用 aspx 页面。
  • 你怎么称呼网络服务?
  • 通过 javascript 在 HTML 页面中使用 Ajax。
【解决方案3】:

我可以看到你正在使用

$('[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/

应该可以。

实际上,您不需要将任何 javascript 嵌入到您的 vb.net 代码中。只需在您的页面中包含一个 javascript 文件并使用 jQuery 的 .on() 事件处理程序。如果您必须从 Web 服务管理 javascript,请使用另一个端点来返回要根据您的 Web 服务生成的代码使用的 javascript。

如果您必须使用最新 jQuery 以外的任何其他版本,请参阅上面提供的文档。

【讨论】:

  • 感谢您的回复,下面的代码对我有用。 $("[id^=tname]").live('click', function (event) { var s = event.target.id; alert('你点击了' + s);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
相关资源
最近更新 更多