json 문자열을 반환하고 jstree를 채우는 모든 webmethod를 가지고 있으며 모든 텍스트 상자를 완벽하게 작동합니다. 사용자가 다른 텍스트 상자를 클릭 할 때마다 jquery에서 다른 값을 전달하지만 webmethod는 호출 된 후 실제로 호출되지 않습니다. 그래서 매번 webmethod를 호출하기 위해 내가 무엇을 정리해야하는지 궁금합니다.jquery 메서드는 처음으로 webmethod를 호출하고 호출 된 다른 시간을 건너 뜁니다.
function showtree1(thisID, line) {
$('#jstree_demo_div').jstree.empty;
$('#jstree_demo_div').jstree({
"core": {
"data": //data - jquery
{
type: "POST"
, dataType: "json"
, contentType: "application/json; charset=utf-8"
, url: "FlowCycleReport.aspx/populateTree"
//, data: "{'imgID':'" + thisID + "'}"
, data: JSON.stringify({ imgID: thisID, line: line })
//, "data": function (node) {
// //return "{'id':'" + $(node).attr("id") + "'}";
// return node.d;
//}
, success: function (node) {
var ReturnString = node.d;
// alert(ReturnString);
return { "id": node.id };
}///success
, error: function (msg) {
alert("Error: " + msg.responseText);
}///error
}//data
}///core
,
"plugins": ["themes", "json_data", "search", "contextmenu", "types"]
});
}
의 WebMethod :
[WebMethod]
//public static string populateTree(string imgID, int node)
public static string populateTree(string imgID, string line)
{
DAL_Flow DL = new DAL_Flow();
//string line = "278";
string nodevalues = DL.JsonNav(imgID, line);
return nodevalues;
}
onclick 이벤트 :
$(function() {
$(".textbox").click(function (e) {
var thisID = $(e.target).attr("ID");
var csID = thisID.substr(thisID.lastIndexOf("_") + 1);
$('#posDetailDiv').hide();
var line = $('#dlLine').val();
// Reset the header:
$('#PartHeaderDiv').empty();
$('#PartHeaderDiv').append('Line Number: ' + line + ': Control Station ' + csID);
showtree1(csID, line);
$('#posDetailDiv').show();
});
});
스크립트 관리자 :
<asp:toolkitscriptmanager runat="server" EnablePageMethods="true" ></asp:toolkitscriptmanager>
CSID 값 라인 내 헤더를 클릭 할 때마다 만에 변경 treeview 값은 그렇지 않습니다.
나는 웹 메소드에 충돌이 없는지 확인하기 위해 웹 메소드에 중단 점을 넣었습니다.
나는 뭔가를 놓친 것 같습니다.
아무도 도와 줄 수 있습니까?
사용자 입력을 클릭 할 때마다 트리를 완전히 지우는 이유는 무엇입니까? 플러그인은 데이터를 관리하기위한 견고한 API를 가지고 있습니다. – charlietfl
b/c 트리마다 채우기 위해 다른 매개 변수를 전달할 때마다 트리를 새로 고쳐야합니다. 게으른 로딩은 우리가 사용하고있는 브라우저에서 작동하지 않으므로 매번로드합니다. 실제로 $ ('# jstree_demo_div')로 작업하는 새로 고침 부분이 있습니다. jstree ("refresh"); 그래서 그건 힘든 일입니다. 하지만 지금, 제 웹 메쏘드를 두 번째로 치는 경우, jquery의 매개 변수는 정확하지만 webmethod에는 여전히 첫 번째 매개 변수가 전달됩니다. – user3434209
플러그인을 사용하면 플러그인이 모든 것을 수행 할 수 있다는 의미가 아닙니다. 매개 변수 또는 매개 변수 없음 – charlietfl