Если это форма окна Datagrid, вы можете использовать приведенный ниже код для форматирования datetime для столбца
dataGrid.Columns[2].DefaultCellStyle.Format = "MM/dd/yyyy HH:mm:ss";
EDIT:
Кроме этого, если вам нужно datetime в формате AM / PM, вы можете использовать приведенный ниже код
dataGrid.Columns[2].DefaultCellStyle.Format = "MM/dd/yyyy hh:mm:ss tt";
Я нашел решение своей проблемы. Я должен сказать, что это не так идеально, как я искал, но пока это работает, и я думаю об этом скорее как о временной работе.
$.post( "url1", function( data)
{
// do some computation on data and then
setSomeValue( data);
});
var setSomeValue = ( function()
{
var cache = {};
return function( data)
{
if ( cache[data] == "updating")
{
setTimeout( function(){ setSomeValue( data);}, 100);
return;
}
if ( !cache[date])
{
cache[date] = updating;
$.post( "url2", function( another_data)
{
//make heavy computation on another_data
cache[data] = value;
// update the UI with value
});
}
else
{
//update the UI using cached value
}
}
})();
Я могу предложить возможное решение, но не видя кода ... не совсем уверен, что вы делаете, но нет причин, по которым вы не могли этого сделать.
Базовый код в jQuery: (не тестировался и сокращался ... но я делал то же самое)
var needAllThese = {};
$(function(){
$.ajax("POST","/somepage.aspx",function(data) {
needAllThese.A = "VALUE";
});
$.ajax("POST","/somepage2.aspx",function(data) {
needAllThese.B = "VALUE";
});
$.ajax("POST","/somepage3.aspx",function(data) {
needAllThese.C = "VALUE";
});
startWatching();
});
function startWatching() {
if (!haveEverythingNeeded()) {
setTimeout(startWatching,100);
return;
}
everythingIsLoaded();
}
function haveEverythingNeeded() {
return needAllThese.A && needAllThese.B && needAllThese.C;
}
function everythingIsLoaded() {
alert("Everything is loaded!");
}
РЕДАКТИРОВАТЬ: (re: ваш комментарий)
Вы ищете обратные вызовы, точно так же, как это сделал бы jQuery.
var cache = {};
function getSomeValue(key, callback) {
if (cache[key]) callback( cache[key] );
$.post( "url", function(data) {
setSomeValue(key,data);
callback( cache[key] );
});
}
function setSomeValue(key,val) {
cache[key] = val;
}
$(function(){
// not sure you would need this, given the code above
for ( var i = 0; i < some_length; ++i) {
$.post( "url", function(data){
setSomeValue("somekey",data);
});
}
getSomeValue("somekey",function(val){
$("#element").txt( val );
};
});
] Javascript по своей сути однопоточный, по крайней мере, для нормальной среды браузера. Никогда не будет двух одновременных выполнений скриптов, обращающихся к одному и тому же документу. (новые рабочие потоки Javascript могут быть здесь исключением, но они вообще не предназначены для доступа к документам, а только для связи посредством передачи сообщений).
Да, вы можете сделать ваши xmlHttpRequests синхронными, в не-IE установите для параметра асинхронности значение false в методе open, в браузерах IE сделайте то же самое с параметром bAsync.
Возможно, вы захотите каким-то образом связать свои запросы. Создайте стек очереди и отправляйте запросы по мере продвижения по очереди.
Во-первых, важно знать, что все текущие реализации JS являются однопоточными, поэтому мы не обсуждаем условия гонки и синхронизацию в том контексте, в котором она обычно используется.
Как сторона обратите внимание, браузеры теперь вводят рабочие потоки, которые разрешают параллелизм в JS, но пока это не так.
В любом случае, вы все еще сталкиваетесь с проблемами с тем, какие данные вы ожидаете получить обратно из асинхронных вызовов, и у вас нет гарантия того, в каком порядке вы получите вещи.
JS дает вам очень хорошее решение этой проблемы с помощью обратных вызовов. Для каждого отправляемого асинхронного события прикрепите к нему соответствующую функцию обратного вызова, которая будет правильно обрабатывать событие. Синхронизация в вашем понимании должна происходить там.