Sergey
- Вопросы
- Ответы
Имя | Sergey |
Возраст | Неизвестно |
Сайт | Неизвестно |
Неизвестно | |
Участвует в проекте | 1111 дн., 18 час., 42 мин. |
Последняя активность | 514 дн., 17 час., 2 мин. назад |
Ответы
Перейти к вопросу →
Вот ещё способ:
CSS
span.button {
background: #eee;
border: 1px solid #ccc;
}
span.button input {
background: #eee;
border:0;
}
HTML
<span class="button"><input type="submit" name="..." value="Button"/></span>
Перейти к вопросу →
Вероятно были проблема с куками или сессией
CookieContainer cookies = new CookieContainer();
cookies.Add(new Cookie("ASP.NET_SessionId", sessionId));
var URL = "http://www.somesite.com";
HttpWebRequest webRequest = WebRequest.Create(URL) as HttpWebRequest;
webRequest.Credentials = new NetworkCredential(ExtAccountToUse, ExtPassword);
webRequest.CookieContainer = cookies; // note this
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; sv-SE; rv:1.9.1b2) Gecko/20081201 Firefox/3.1b2";
webRequest.ContentLength = paramStream.Length;
byte[] paramStream = Encoding.ASCII.GetBytes("param1=value¶m2=value2");
using (Stream stream = webRequest.GetRequestStream())
{
stream.Write(paramStream, 0, paramStream.Length);
}
string result;
using (WebResponse response = request.GetResponse())
{
using (var sr = new StreamReader(response.GetResponseStream()))
{
result = sr.ReadToEnd();
}
}
Перейти к вопросу →
Для вертикального выравнивания в блоках разработчики W3C создали замечательное свойство display: table-cell;
, которое позволяет заставить какой-либо элемент отображаться как ячейка таблицы. При этом добавив vertical-align: middle;
мы прекрасно справились бы с поставленной задачей, если бы не Internet Explorer, который ни в какую не хочет поддерживать свойство display: table-cell;
. Ниже приведен образец кода, который поможет IE отображать содержимое блока по середине, также как в остальных браузерах:
HTML:
<div class="container">
<p class="middled">Вертикально отцентрированный элемент</p>
</div>
CSS:
.container {
display: table-cell;
vertical-align: middle;
}
.middled {
margin-top: expression((parentNode.offsetHeight - this.offsetHeight)<0 ? "0" : (parentNode.offsetHeight - this.offsetHeight)/2 + "px");
}
Для укрощения IE мы воспользовались expression
‘ом. Expression выполняет следующие функции: он вычисляет высоту родительского и дочернего элементов, затем их разность делит пополам, а полученное в результате этого число мы используем в качестве значения верхнего отступа для дочернего элемента. Expression
лучше убрать в отдельный css файл используя условные комментарии.
Перейти к вопросу →
Сериализация:
DataClass obj = new DataClass();
// создаем сериалайзер
XmlSerializer sr = new XmlSerializer(obj.GetType());
// создаем writer, в который будет происходить сериализация
StringBuilder sb = new StringBuilder();
StringWriter w = new StringWriter(sb, System.Globalization.CultureInfo.InvariantCulture);
// сериализуем
sr.Serialize(w,obj);
// получаем строку Xml
string xml = sb.ToString();
Console.WriteLine(xml);
Десериализация
// создаем reader
StringReader reader = new StringReader(xml);
// создаем XmlSerializer
XmlSerializer dsr = new XmlSerializer(typeof(DataClass));
// десериализуем
DataClass clone = (DataClass)dsr.Deserialize(reader);
Перейти к вопросу →
В html странице, нужно использовать следующие meta-тэги:
<html>
<head>
<meta http-equiv="Cache-Control" content="no-cache, no-store, max-age=0, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="Fri, 01 Jan 1990 00:00:00 GMT"/>
</head>
<body>
...
</body>
<html>
Использование meta
-тэгов помогает нам избавиться от кэширования в браузере. Однако, помимо кэша браузера существует кэш прокси-сервера, который проводит анализ лишь HTTP
-заголовков. К тому же может появится необходимость отключить кэширование не только самой html
-страницы, но и ресурсов, находящихся на ней (jpg, swf ...).
Данную проблему можно решить например таким вот servlet-фильтром:
Перейти к вопросу →
Вот этот способ, по-моему мнению, самый оптимальный:
var xDoc = new XmlDocument();
xDoc.Load(stream);
var nsmanager = new XmlNamespaceManager(xDoc.NameTable);
nsmanager.AddNamespace("c", xDoc.DocumentElement.NamespaceURI);
Дальше XPath
используется по обычной схеме, просто добавляется с:
и nsmanager
XmlNodeList nodes = rootNode.SelectNodes("c:book", nsmanager);
Перейти к вопросу →
Программа XPathVisualizer очень помогает писать XPath запросы, для любого XML файла
Перейти к вопросу →
Самое распространённое решение этой проблемы:
1 Callback для таймера
Timer timer = new Timer(new TimerCallback(MyWorkCallback), HttpContext, 5000, 5000);
2 Поток в пул потоков
Thread thread = new Thread(Work);
thread.IsBackground = true;
thread.Start();
3 Собственно рабочий процесс
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(DoMyWork);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(DoMyWork_Completed);
worker.RunWorkerAsync();
4 Кэширование как здесь