2013-05-10 109 views
2

我期待在ASP中繼器上設置排序。看我的中繼代碼:如何從javascript調用服務器端函數

<asp:Repeater runat="server" ID="RptClientDetails"> 
        <HeaderTemplate> 
         <table id="example" class="dynamicTable table table-striped table-bordered table-primary"> 
          <thead> 
           <tr> 
            <th> 

           <a href="#" onclick="ClientSort('ClientID')">Client ID</a> 


            </th> 
            <th> 
            <a href="#" onclick="ClientSort('Name')">Name</a> 


            </th> 
            <th> 
            <a href="#" onclick="ClientSort('TotalBalanceDue')">Total Balance Due</a> 


            </th> 
           </tr> 
          </thead> 
          <tbody> 
        </HeaderTemplate> 
        <ItemTemplate> 

這裏,我打電話給javascript函數。看到我的javascript功能代碼:

function ClientSort(SortExpress) { 

      <%= Sorting(SortExpress) %> 
     } 

從這裏我想調用我的.net服務器端函數。

public void Sorting(string SortExpression) 
{ 
    string s = SortExpression; 

} 

所以,你有沒有想法我該怎麼稱呼它?或者直接從中繼器,我可以把這個服務器端function..Thanks

回答

2

直接你可以調用中繼控制的服務器端代碼,只需使用Linkbutton而不是href。

<asp:Repeater runat="server" ID="RptClientDetails"> 
    <HeaderTemplate> 
      <table id="example" class="dynamicTable table table-striped table-bordered table-primary"> 
       <thead> 
        <tr> 
         <th> 
          <%--<a href="#" onclick="ClientSort('ClientID')">Client ID</a>--%> 
          <asp:LinkButton ID="lbtn" Text="Client ID" ForeColor="Blue" OnCommand="lbtnSorting_Click" CommandArgument="ClientID" runat="server"></asp:LinkButton> 
         </th> 
         <th> 
          <asp:LinkButton ID="LinkButton1" Text="Name" ForeColor="Blue" OnCommand="lbtnSorting_Click" CommandArgument="Name" runat="server"></asp:LinkButton> 
          <%--<a href="#" onclick="ClientSort('Name')">Name</a>--%> 
         </th> 
         <th> 
          <asp:LinkButton ID="LinkButton2" Text="Total Balance Due" ForeColor="Blue" OnCommand="lbtnSorting_Click" CommandArgument="TotalBalanceDue" runat="server"></asp:LinkButton> 
          <%--<a href="#" onclick="ClientSort('TotalBalanceDue')">Total Balance Due</a>--%> 
         </th> 
        </tr> 
       </thead> 
       <tbody> 
     </HeaderTemplate> 
</asp:Repeater> 

而後面的代碼:

protected void lbtnSorting_Click(object sender, CommandEventArgs e) 
    { 
     string s = e.CommandArgument.ToString(); 
    } 
+0

thx bro ...這正是我正在尋找的......:d – Kvadiyatar 2013-05-10 05:30:28

1

要調用服務器端代碼無需重新加載頁面,使用jQuery AJAX功能:http://api.jquery.com/jQuery.ajax/

+0

我沒有帶負載頁面諮詢... ...我只是想呼叫服務器從JavaScript ... – Kvadiyatar 2013-05-10 05:06:11

+0

側的功能,這是你如何能做到這 – Igor 2013-05-10 05:06:59

+0

THT的我的問題哥哥... – Kvadiyatar 2013-05-10 05:11:55

2

你不能簡單地從你的JavaScript調用ASP.NET - 方法。這是因爲ASP.NET純粹是服務器端,JavaScript是客戶端。
ASP.NET從您的.NET代碼生成HTML和JavaScript,這隻發生在回發或初始加載期間。
ASP.NET呈現方,提供它並從此時刻開始直到回傳。

請參閱ASP.NET-page lifecyclethis後。

0

我有一個類似的問題,得到了由下面的代碼固定的...希望有人將受益: - 我需要調用服務器端功能(按一下按鈕事件功能)只是通過文本框的Onblur:

asp:TextBox ID =「txtNum」runat =「server」CssClass =「Textbox」Width =「170px」MaxLength =「8」onblur =「javascript: return check2();「/>」

//JAVASCRIPT - onblur calls button click serverside function 
function check2() { 
    document.getElementById("<%=btncheck.ClientID%>").click(); 
} 

ASP:按鈕ID = 「btncheck」 RUNAT = 「服務器」 文本= 「驗證」 的OnClick = 「CHECK1」/>

//CODE BEHIND - On clicking the Button 
protected void check1(object sender, EventArgs e) 
{ 
    string str1 = txtBox.Text; 
    CheckCCN2(str1);   
} 
//Onblur of the Textbox txtNum 
public void CheckCCN2(string strCCNNum) 
{ 
    //all your server side code  
} 
相關問題