Я использовал VBA-код (макрос) для сбора & amp; сжать данные и получить эти данные за один вызов C #, и наоборот. Вероятно, это будет наиболее эффективный подход.
Используя C #, вам всегда нужно использовать маршаллинг. При использовании VSTO или COM Interop нижележащий коммуникационный уровень (распределение служебных данных) одинаков.
В VBA (Visual Basic для приложений) вы работаете непосредственно с объектами в Excel. Таким образом, доступ к этим данным всегда будет быстрее.
Но .... Если у вас есть данные в C #, манипулирование этими данными может быть намного быстрее.
Если вы используете VB6 или C ++, вы также проходите через интерфейс COM и столкнетесь с межпроцессным маршалингом.
Итак, вы ищете метод для минимизации межпроцессных вызовов и маршаллинга.
Это URL-адрес, на который вы отправляете обновления (который будет какая-то динамическая страница, такая как PHP, JSP, сервлет Java и т.д.), добавляющая возвращаемое значение из хранимой процедуры в ответ? Если так, то я
Похоже, jEditable - это оболочка для ajax-методов jquery. Не должно быть слишком сложно заменить все ваши вызовы jEditable вызовами, использующими собственный метод jquery ajax.
Вы можете заменить обратный вызов jEditable с именем 'callback' на 'success', который является именем обратного вызова в функции jquery ajax.
Я сделал именно это для своего сайта. Это должно помочь вам начать работу.
$("#editable_text").editable(submitEdit, {
indicator : "Saving...",
tooltip : "Click to edit...",
name : "Editable.FieldName",
id : "elementid",
type : "text",
});
function submitEdit(value, settings)
{
var edits = new Object();
var origvalue = this.revert;
var textbox = this;
var result = value;
edits[settings.name] = [value];
var returned = $.ajax({
url: "http://URLTOPOSTTO",
type: "POST",
data : edits,
dataType : "json",
complete : function (xhr, textStatus)
{
var response = $.secureEvalJSON(xhr.responseText);
if (response.Message != "")
{
alert(Message);
}
}
});
return(result);
}
Вам необходимо вернуть ответ Json в форме
{"Message" = "FOO"}
И он будет отображаться в предупреждении.
китайский пользователь может видеть этот блог: http://wxianfeng.com/2009/10/14/rails-in-place-edit-with-jquery
Я тоже работал в классическом ASP, пытаясь решить эту проблему, и подумал, что другие, как я, тоже могут оказаться здесь. Вот как я решил эту проблему в классическом ASP:
Failed server validation... response from whatever.asp
<%
response.status "406 Not Acceptable"
response.write "error message here"
response.end
%>
Какое бы сообщение об ошибке ни прислал whatever.asp, доступ к нему можно получить через onerror:
, и поле будет сброшено на исходное значение.
$("#editable_text").editable("whatever.asp", {
indicator : "Saving...",
tooltip : "Click to edit...",
type : "text",
onerror: function (settings, original, xhr) {
original.reset();
//do whatever you want with the error msg here
alert(xhr.responseText);
}
});
(и если значение проходит проверку сервера, просто response.write, что бы ни было обновленное значение)
.