Webパーツにスクロール可能なGridViewがあり、各ユーザースクロールでAJAX呼び出しを行う必要があります。 Web部分でJquery 1.7.1を使用して、C#ハンドラクラスを呼び出します。SharePoint Webパーツ:ashxハンドラへのjquery ajax呼び出しを作成できません
エラー500が発生しました:内部サーバーエラー。ここで
はascxファイルのサンプルです:
<div id="divProducts" style="height:300px;overflow:auto">
<asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333" EnableViewState="false">
<AlternatingRowStyle BackColor="White" />
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<HeaderStyle CssClass="header" BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
</asp:GridView>
</div>
<div id="divProgress" style="margin-top: -50px;margin-left:150px;z-index:-999">
<asp:Image ID="image1" ImageUrl="~/_layouts/images/MyWebPart/loading.gif" width="100" height="100" runat="server" />
</div>
<script type="text/javascript">
$(document).ready(function() {
//initially hide the loading gif
$("#divProgress").hide();
//Attach function to the scroll event of the div
$("#divProducts").scroll(function() {
//User has scrolled to the end of the grid. Load new data..
$("#divProgress").ajaxStart(function() {
$(this).show();
});
$("#divProgress").ajaxStop(function() {
$(this).hide();
});
BindNewData();
});
});
function BindNewData() {
$.ajax({
type: "GET",
url: "/_layouts/MyWebPart/FetchRecordsHandler.ashx",
success: function (data) {
alert('data ', data);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
</script>
私は私のWebパーツプロジェクト(レイアウト/ MyWebPart/FetchRecordsHandler.ashx)のレイアウトフォルダに展開されますASHXファイルを追加:
<%@ WebHandler Language="C#" Class="MyWebPart.Code.FetchRecordsHandler" CodeBehind="FetchRecordsHandler.cs" %>
を
そして、私は正しい名前空間にIHTTPハンドラを実装するクラスのFetchRecordsHandlerを作成:
namespace MyWebPart.Code
{
class FetchRecordsHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Write("From the handler at " + DateTime.Now);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
この方法は私のウェブの部分では機能しません。スクロールイベントからWebパーツへのajax呼び出しを行うためのソリューションの考え方、あるいは別のテクニックあなたが好きなものにあなたの.ashxを変更する必要が
Thxを
私はこの作業を行う時間があまりかからなかったので、私は別の解決策を選択しました(codeBehindでaspxを使用しています)。私は時間がある最初の機会、私はあなたのソリューションをテストしています。どうも – Dino