javascript
  • jquery
  • vb.net
  • 2013-01-09 54 views -2 likes 
    -2

    任何人都可以幫我,因爲我需要在vb.net代碼中寫一個Javascript? 我的意思是我新vb.net編碼,我有一個動態創建表從Web服務,併爲該表我需要添加排序功能,這是在JavaScript代碼中,我需要添加此腳本動態創建的表 我試着用這樣的:如何在vb.net代碼中編寫java腳本?

     oSB.Append("table.RegisterStartupScript('SCRIPTNAME', '<script language='javascript'>function tname(){alert('kk')};</script>')") 
    

    ,但它似乎不工作atall。

    此外,我試圖用這個

     '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); 
        } 
    
    } 
    

    表的代碼(web服務):

     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) 
    

    有人可以告訴我在哪裏我錯了嗎?

    再次歡呼

    +2

    請谷歌搜索嗎? – Swarne27

    回答

    1

    您無法在vb.net代碼中編寫javascript代碼。您可以在vb.net代碼中添加/嵌入JavaScript代碼以在客戶端執行。通常你需要在aspx頁面中編寫javascript代碼。您可以使用 ScriptManager.RegisterClientScriptBlock從vb代碼註冊腳本。

    +0

    我試着用這些鏈接,但似乎不工作http://forums.asp.net/t/1382342.aspx和http://www.dotnetspider.com/forum/251475-How-write-java-script -vb.net-code.aspx – pavan

    +0

    我昨天回答了你的類似問題,你嘗試瞭解決方案嗎? – Adil

    +0

    我沒有在這裏使用aspx頁面,我擁有的是一個調用webservice的html頁面,並且動態地在webservice頁面中創建表格,我不想使用aspx頁面atall。 – pavan

    2

    你不能在vb.net代碼中直接寫javascript。但是,您可以註冊並從vb.net代碼激發JavaScript。您正在使用

    $('[id^=tname] th').live('click'... 
    

    然而,從jQuery的文檔

    Dim strScript As String = "<script>" 
    strScript += "alert('Hello, Pavan');" 
    strScript += "</script>" 
    Page.RegisterClientScriptBlock("strScript", strScript) 
    
    +0

    thanx jeev !!!這是一個vb.net代碼?它不工作,我試過了。 – pavan

    +0

    看看這裏:http://roja-dotnet.blogspot.in/2011/10/calling-javascript-function-in-vb-net.html – jeev

    +0

    也是這樣的:http://www.eggheadcafe.com/community /javascript/3/59770/calling-javascript-function-in-vb-net.aspx – jeev

    1

    我可以看到:

    試試這個

    Page.RegisterClientScriptBlock("key","<script>alert('Hello World');</script>"); 
    

    試試這個VB代碼塊

    從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之外的任何其他版本,請參閱上面提供的文檔。

    +0

    Thanx的答覆,下面的代碼爲我工作。 $(「[id^= tname]」)。live('click',function(event){var s = event.target.id; alert('u hve clicked'+ s); – pavan

    相關問題