Молчун
Зарегистрирован: 26 September 2007
Сообщения: 27
Примеры кода: 0
|
Re: DevExpress.Web.ASPxGridView и javascript |
23 April 2008 17:08 |
|
|
|
|
Andrew TelnovДобрый день,
Спасибо Max Pro за мнение о продукте.
По поводу проблемы. Я бы не стал менять что-то в гриде на клиенте после Rendering.
Рекомендуемый подход
1) определить time zone на клиенте, например:
var dateDifference = new Date().getTimezoneOffset();
2) передать ее на сервер
можно через hidden поле например:
document.getElementById('hiddenTimeOffset').value = dateDifference;
3) Записать Time zone в переменную сессию и пользоваться ей в течение сессии
4) Заместо
<%# Eval("TIME")%>
нужно вызвать метод страницы и передать туда время
<%# TimeZoneConverter(Eval("TIME"))%>
protected string TimeZoneConverter(object value) {
DateTime myTime = (DateTime)value;
//Do needed conversion
return myTime.ToString(); // or use the any format.
}
Спасибо, пробую Ваш вариант. Но что-то не получается...
Невидимое поле:
<asp:HiddenField runat="server" ID="_offsetlbl" Value="" EnableViewState="true" />
Регистрирую скрипт:
private void GetTimezoneOffset()
{
string SCRIPTNAME = "GetTimezoneOffset";
StringBuilder script = new StringBuilder();
script.AppendLine("<script type='text/javascript'>");
script.AppendLine("function getLocalTimezoneOffset()");
script.AppendLine("{");
script.AppendLine(" var dateDifference = new Date().getTimezoneOffset();");
script.AppendLine(string.Format(" document.getElementById('{0}').value = dateDifference;",_offsetlbl.ClientID));
script.AppendLine("}");
script.AppendLine("</script>");
Page.ClientScript.RegisterStartupScript(this.GetType(), SCRIPTNAME, script.ToString());
}
В Page_load вызываю GetTimezoneOffset(), потом проверяю _offsetlbl.Value, а оно пустое. Что делаю неправильно?
|
|