передача переменной из gridview на другую страницу и вставка ее в заголовок

#asp.net #vb.net #gridview

#asp.net #vb.net #gridview

Вопрос:

В настоящее время я работаю с gridviews в asp.net (vb). У меня есть это место, откуда я могу передавать информацию gridview1 в gridview2 на следующей странице. Однако то, что мне нужно сделать сейчас, это передать переменную из столбца в gridview2 в заголовок этой страницы.

ei. в Gridview2 у нас есть столбец, и все результаты одинаковы, заголовок столбца — StoreName, а все данные для столбца — Sears

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

Сохраняйте информацию для Sears

У меня возникли проблемы с тем, как будет выглядеть код для этой строки, все, что я пробовал, приводило к использованию переменной до ее объявления. Мне нужно, чтобы эта строка была динамической, поскольку результаты не всегда будут для Sears. Любая помощь была бы высоко оценена.

Комментарии:

1. Люди будут более склонны помогать вам, если вы будете чаще принимать их ответы.

2. Возможно, опубликуйте какой-нибудь код о том, как вы передаете текущую информацию.

Ответ №1:

Ну, я думаю, что, вероятно, есть гораздо лучшие способы выполнить то, что вы пытаетесь сделать, но чтобы ответить на ваш вопрос, вы можете извлекать значения из вашего GridView следующим образом:

 string storeName = yourGridView.Rows[rowIndex].Cells[cellIndex].Text;
  

Тогда, я полагаю, вы могли бы сделать что-то вроде этого:

 lblYourLabel.Text = "Store Information for "   storeName;
  

Я не думаю, что это отличная идея извлекать эту информацию непосредственно из вашей сетки на основе индекса. Если эти столбцы будут переставлены, ваш код больше не будет работать. Вместо этого извлеките название хранилища из данных, которые вы используете для заполнения сетки.

Комментарии:

1. спасибо за ответ, друг, я думаю, что ваш метод — правильный путь, однако, когда я размещаю код, он выдает ошибку «Ожидаемый конец инструкции» …. есть мысли? Также, будет ли этот метод работать, если для столбца установлено значение невидимый?

2. Нет, вы не можете использовать этот метод для получения значений ячеек в скрытых столбцах, но вы можете обойти эту проблему. Один из способов — установить для столбца значение visible = true, databind, затем установить для столбца значение visible = false.

3. Поскольку код не работает, вам придется изменить имена переменных, чтобы они соответствовали вашим определениям, и заменить «RowIndex» и «cellIndex» правильными значениями.

Ответ №2:

Если вы используете кнопку, вы можете передать значение через CommandArguement

 <asp:LinkButton ID="lbSelectStore" runat="server" CausesValidation="False" CommandName="Select" Text="<%# Bind("StoreName") %>" CommandArgument='<%# Eval("StoreID") %>'></asp:LinkButton>
  

В качестве альтернативы вы можете просто сделать это как гиперссылку и передать значение в строке запроса.

  <asp:TemplateField HeaderText="Store" >
      <ItemTemplate>
          <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Bind("StopeName") %>' NavigateUrl='~/StoreDetails.aspx?Store=<%# Bind("StoreID") %>'>HyperLink</asp:HyperLink>
      </ItemTemplate>
  </asp:TemplateField>