我希望在ASP Repeater上设置排序。看到我的转发器代码:
<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;
}
所以,你知道我怎么称呼它?或直接从转发器我可以调用此服务器端功能..谢谢
答案 0 :(得分:2)
您不能简单地从JavaScript调用ASP.NET
- 方法。这是因为ASP.NET纯服务器端,JavaScript是客户端
ASP.NET从您的.NET代码生成HTML和JavaScript,这仅在回发或初始加载期间发生
ASP.NET提供了一个侧面,提供它并从此Moment on中脱离游戏直到回发。
请参阅ASP.NET-page lifecycle和this帖子。
答案 1 :(得分: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();
}
答案 2 :(得分:1)
要在不重新加载页面的情况下调用服务器端代码,请使用jquery ajax函数:http://api.jquery.com/jQuery.ajax/
答案 3 :(得分:0)
我有一个类似的问题通过以下代码修复...希望有人会受益: - 我需要通过文本框的Onblur从客户端调用服务器端功能(按钮单击事件功能):
asp:TextBox ID =&#34; txtNum&#34; RUNAT =&#34;服务器&#34;的CssClass =&#34;文本框&#34;宽度=&#34; 170像素&#34;的MaxLength =&#34; 8&#34; onblur =&#34; javascript:return check2();&#34; /&gt;&#34;
//JAVASCRIPT - onblur calls button click serverside function
function check2() {
document.getElementById("<%=btncheck.ClientID%>").click();
}
asp:按钮ID =&#34; btncheck&#34; RUNAT =&#34;服务器&#34;文本=&#34;验证&#34;的OnClick =&#34; CHECK1&#34; /&GT;
//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
}