开发者

jqGrid populate select control on row edit

开发者 https://www.devze.com 2023-04-04 14:15 出处:网络
I want to add about 150 element from a xml file to a select control that is inside a jqGrid cell. I was thinking of doing this in two ways:

I want to add about 150 element from a xml file to a select control that is inside a jqGrid cell. I was thinking of doing this in two ways:

1.Using the editoptions value:

{ name: 'language', width: 100, sortable: false, editable: true, edittype: 'select', editoptions: { value: languageElem()} }

using data received from the method:

function languageElem() {
$.ajax({
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    url: 'jqService.asmx/GetLanguages',
    data: {},
    dataType: "json",
    success: function (data) {
        alert("success");
    }
});}

But I'm having trouble forwarding the data from the ajax part.

2.Simply accessing the select control inside the jqGrid cell and manually adding the options whenever the edit button is pressed.

The problem over here is that I have no idea how to access the control itself.

The code I used over here is:

function startEdit() {
if (selRow > -1) {
 开发者_JS百科   $.ajax({
        type: 'POST',
        contentType: "application/json; charset=utf-8",
        url: 'jqService.asmx/GetLanguages',
        data: {},
        dataType: "json",
        success: function (data) {
            var cell = jQuery("#MainContent_list").getCell(selRow, "language");
            cell.options.length = 0;
            for (var i=0;i<data.d.length;i++)
            {
            }
        }
    });
    jQuery("#MainContent_list").jqGrid('restoreRow', selRow);
    jQuery("#MainContent_list").jqGrid('editRow', selRow);
}

My questions are:

1.Related to the first idea, what should I do to fix the method so that the control will receive it's needed values?

2.Related to the second idea, how could I access the control inside the row?

Thanks, Catalin


Instead of value property (editoptions: { value: languageElem()}) you should use dataUrl and buildSelect (see the documentation). Because it's difficult to return from ASMX HTML fragment <select><option>...</option></select> you can provide the list serialized as JSON and convert the server response to HTML fragment using buildSelect. In the answer and in this one you will find additional information. If you would search for dataUrl and buildSelect you will find more information and code example which you could use.

0

精彩评论

暂无评论...
验证码 换一张
取 消