Имам страница на asp.net (Форма = runat сървър)
2 текстови полета:
<input type="text" id="tb1" />
<asp:TextBox ID="tb2" runat="server" />
и бутон за изпращане.
Въпреки това, когато сложа някои стойности в тях - и натискам бутона - Само tb2 връща стойността си от сървъра.
Мислех, че стойностите на полетата за въвеждане преминават винаги от клиент към сървър и обратно!
в кое събитие (в жизнения цикъл на страницата) Губи ли tb1 стойността си?
Отговори:
2 за отговор № 1POST ще съдържа информация, въведена в tb1 - за да може да бъде прочетена от Заявката
ако го промените на
<input type="text" id="tb1" runat="server" />
тя ще работи както искате.
без runat = сървърът не "губи" стойността си - никога няма да бъде попълнен - никога, защото това са просто данни в POST и не са свързани със сървърно управление от страна на сървъра.
една последна точка - изрично да отговоря на някои от вашите коментари - данните от POST се обработват точно преди събитието PreLoad - това може да се намери от http://msdn.microsoft.com/en-us/library/ms178472.aspx
4 за отговор № 2
<input type="text" id="tb1" />
е буквален HTML.
Няма код от страната на сървъра, който да връща стойността обратно.
Тази функция е част от контролите от страна на сървъра.
1 за отговор № 3
tb1
не е управление от страна на сървъра, това е нормален html dom обект.
Трябва да намерите стойността му след публикация в Request.Form
събиране на стойност обаче.