я написал очень (!) Маленький вспомогательный метод вокруг adobereader для массовой печати pdf из c # ...:
public static bool Print(string file, string printer) {
try {
Process.Start(
Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Microsoft\Windows\CurrentVersion" +
@"\App Paths\AcroRd32.exe").GetValue("").ToString(),
string.Format("/h /t \"{0}\" \"{1}\"", file, printer));
return true;
} catch { }
return false;
}
нельзя полагаться на возвращаемое значение метода btw .. .
Автосохранение должно быть довольно простым в реализации, и вы можете использовать один из основных такие фреймворки, как jquery или mootools. Все, что вам нужно сделать, это использовать window.setTimeout () после того, как ваш пользователь редактирует что-то, что должно быть автоматически сохранено, и чтобы этот тайм-аут вызывал стандартный материал AJAX фреймворка javascript.
Например (с jquery):
var autosaveOn = false;
function myAutosavedTextbox_onTextChanged()
{
if (!autosaveOn)
{
autosaveOn = true;
$('#myAutosavedTextbox').everyTime("300000", function(){
$.ajax({
type: "POST",
url: "autosavecallbackurl",
data: "id=1",
success: function(msg) {
$('#autosavenotify').text(msg);
}
});
}); //closing tag
}
}
Я бы посоветовал вам использовать jQuery. Часть "сохранения", конечно, все еще должна выполняться на бэкэнде, но jQuery упрощает отправку запросов AJAX.
Если у вас есть серверная часть ASP.NET, вы можете просто вызвать WebMethod и отправить связанный строка (содержимое текстового поля и т. д.) через указанный интервал:
[WebMethod]
public void AutoSave(String autoSaveContent)
{
// Save
}
Запрос jQuery для вызова этого метода будет:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "AutoSaveService.asmx/AutoSave",
data: "{textBoxToAutosaveText}",
dataType: "json"
});
Вот и все. Вы можете найти jQuery на сайте http://jquery.com/ .
Вы можете сэкономить на установленном времени, используя тайм-аут, но лучшим методом может быть просто какой-то обработчик событий onchange, чтобы при изменении данных, если у вас нет t сохраняются в течение установленного периода времени, затем сохраняются, но не экономят при каждом нажатии клавиши.
Итак, вы посмотрите, когда вы в последний раз сохраняли, перед вызовом функции ajax.
Это позволит вам сохраняйте только при необходимости, но с заданной скоростью. Итак, если вы хотите сохранять каждые 5 минут, то независимо от того, какие изменения были внесены, если изменение было сделано в течение этого 5-минутного окна, которое вы сохраняете.
Выполнение вызова ajax тривиально, но jQuery может его упростить. К сожалению, чтобы получить то, что вы хотите, из того, что я видел, вам нужно просто реализовать свои собственные функции. Это сложно сделать в общих чертах, так как разные люди могут захотеть сохранить, если будут изменены только определенные поля. Таким образом, просто потому, что я нажимаю на поле выбора, это может не привести к функции сохранения, но изменение чего-либо в текстовом поле может.
synchronize - это плагин jquery , который добавляет функциональные возможности вашей html-странице для периодической автоматической отправки пользовательского ввода обратно на сервер. ( исходный код )
Пример JavaScript и HTML:
<script>
$("input").synchronize();
</script>
<input type="text" value="initial_value"
class="{url:'/entity.cfc?method=updateDescription',data:{ID1:'1',ID2:'2'}}" />
результирующий запрос ajax после задержки по умолчанию в 1 с:
http://localhost/entity.cfc?method=updateDescription&value=update_value&preVal=initial_value&ID1=1&ID2=2
Isn't all you need a timer that fires every x seconds? The callback function will do an AJAX postback to the server of the form with a "autosave=true" field added. Just handle this postback on the server and you are done.
Если вы ищете простую и легкую программу, я думаю, что самый легкий вариант, который вы можете получить, - это использовать встроенную в JavaScript функцию setTimeout ()
. Используйте его в сочетании с выбранной вами структурой для AJAX, и все готово.
function autoSave()
{
$.get(URL, DATA); // Use any AJAX code here for the actual autosaving. This is lightweight jQuery.
setTimeout("autoSave()", 60000); // Autosaves every minute.
}
autoSave(); // Initiate the auto-saving.