текстовое поле asp:GridView всегда возвращает пустое значение

Я добавил некоторые текстовые поля к gridview, использующему после кода

<asp:TemplateField HeaderText="STD<br/>ID">
       <ItemStyle BackColor="LightBlue" />
          <ItemTemplate>
          <div style="font-size:xx-small; overflow:hidden;">
          <asp:TextBox ID="txtStandard" EnableViewState="true" Height="10" Font-Size="XX-Small" Width="50" Text='<%# bind("STANDARD_ID") %>' runat="server"></asp:TextBox>
       <asp:AutoCompleteExtender ID="AutoCompleteExtenderDemo" runat="server" 
            TargetControlID="txtStandard" ServiceMethod="GetCompletionList"
            MinimumPrefixLength="1" CompletionInterval="1000"
            EnableCaching="true" CompletionSetCount="20">
        </asp:AutoCompleteExtender>
                        </div>



                    </ItemTemplate>
                </asp:TemplateField>

Я хочу сохранить обновленные значения к базе данных, Но когда я пытаюсь получить доступ к использованию значений

string strs = ((TextBox)TwoHeadedGridView1.Rows[0].FindControl("txtStandard")).Text;

Это всегда возвращает меня пустое значение для всех строк, То же самое происходит для выпадающего списка, это возвращает меня первоначально выбранное значение т.е. значение, выбранное во время записи выпадающего поля, нет никакого дублирующегося идентификационного подарка на моей форме asp, Это - мое первое взаимодействие с настройкой gridview, я хочу так или иначе заставить его работать,

Может кто-либо предлагать меня любое исправление...

Я сделал проверенный, что любой дублирующийся идентификатор присутствует в нем или нет,

5
задан Matthew Groves 14 May 2010 в 21:19
поделиться

2 ответа

Я нашел решение этой проблемы здесь: http://www.eggheadcafe.com/software/aspnet/29602882/gridview--cant-get-text.aspx

Помните, что веб-страница, по сути, не имеет состояния!

Когда ваш GridView запускает событие, выполняется ваш метод Page_Load , а затем , затем метод, который обрабатывает событие GridView . Я все еще не могу поверить своим глазам, но кажется, что даже если вы вручную присвоите значения из источника данных GridView своим текстовым полям, значение, введенное пользователем, будет уничтожено, когда GridView .DataBind метод выполняется.

Короче говоря, если ваш код похож на мой, у вас есть эти две строки кода в методе Page_Load :

myGridView.DataSource = someDataSet;
myGridView.DataBind ();

Чтобы решить эту проблему, измените его на следующее:

if (! IsPostBack)
{
myGridView.DataSource = someDataSet;
myGridView.DataBind ();
}

Между прочим, я работаю в VB.net, поэтому, пожалуйста, дайте мне знать, что я правильно преобразовал для вас C #. Я хочу услышать, что это работает и для вас!

4
ответ дан 15 December 2019 в 00:53
поделиться

Где вы пытаетесь получить доступ к этим значениям? Если вы обращаетесь к ним в функции RowUpdated, значения будут пустыми. Получите доступ к ним в функции RowUpdating и убедитесь, что обновление отменено.

0
ответ дан 15 December 2019 в 00:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: