Всем привет!
Помогите пожалуйста.
Есть грид, в котором содержатся ФИО и ID.
Как сделать чтобы при нажатии на кнопку в гриде, перекидывало на другую страницу на которой отображаются данные соответствующие моему ID строки.
ASP 2.0
Заранее спасибо.
Как передать ID строки контролу в гриде.
От:
Аноним
Дата:
16.05.06 09:37
Оценка:
Создаешь страницу, где будет по соответствующему Request("ID") отображаться информация,
В гриде добавляешь столбец кнопка, где в CommandName пишеш что-нить, и у грида обрабатываешь RowCommand, где делаешь редирект на нужную страницу передавая ей параметр через GET
Получит ID выбранного человека так:
CType(sender, GridView).Rows(CInt(e.CommandArgument)).Cells([Номер ячейки]).Text
------------------------------------------
Там было написано русским по белому...
[Нравится ответ, проголосуй за него]
Здравствуйте, Аноним, Вы писали:
А>Всем привет! А>Помогите пожалуйста. А>Есть грид, в котором содержатся ФИО и ID. А>Как сделать чтобы при нажатии на кнопку в гриде, перекидывало на другую страницу на которой отображаются данные соответствующие моему ID строки. А>ASP 2.0 А>Заранее спасибо.
В гриде создаешь HyperLink Column, а в графе URL Fromat string пишешь some_page.aspx?some_var={0}
На странице some_page.aspx проверяешь значение параметра
Re[2]: Как передать ID строки контролу в гриде.
От:
Аноним
Дата:
16.05.06 11:28
Оценка:
Здравствуйте, NeoSap, Вы писали:
NS>Здравствуйте, Аноним, Вы писали:
А>>Всем привет! А>>Помогите пожалуйста. А>>Есть грид, в котором содержатся ФИО и ID. А>>Как сделать чтобы при нажатии на кнопку в гриде, перекидывало на другую страницу на которой отображаются данные соответствующие моему ID строки. А>>ASP 2.0 А>>Заранее спасибо.
NS>В гриде создаешь HyperLink Column, а в графе URL Fromat string пишешь some_page.aspx?some_var={0}
NS>На странице some_page.aspx проверяешь значение параметра
Спасибо с этим разобрался.
Щас другая проблема возникла.
Как делать редактирование данных в гриде — в ячейках.
Спасибо за помощь.
Re[2]: Как передать ID строки контролу в гриде.
От:
Аноним
Дата:
16.05.06 11:36
Оценка:
Спасибо с этим разобрался.
Щас другая проблема возникла.
Как делать редактирование данных в гриде — в ячейках.
Спасибо за помощь.
Здравствуйте, Аноним, Вы писали:
А>Всем привет! А>Помогите пожалуйста. А>Есть грид, в котором содержатся ФИО и ID. А>Как сделать чтобы при нажатии на кнопку в гриде, перекидывало на другую страницу на которой отображаются данные соответствующие моему ID строки. А>ASP 2.0 А>Заранее спасибо.
разные есть способы
1) формирование кнопки-гиперсцылки (можно формировать либо через ItemDataBound либо создать собственный DataGridItemTemplate)
затем в форме, на которую осуществляется навигация, брать ID из командной строки
2) на посте — использовать событие ItemCommand и в нем отыскивать нужный контрол и брать значение , а кнопке надо присваивать CommandName
способ 2) проще в реализации и более идеологический правильный, но мне более по душе способ 1) с Гетом.
вот приблизительный пример темплейта
public class HyperLinkItemTemplate:ITemplate
{
#region ctors
public HyperLinkItemTemplate(string hrefTemplate, string dataField) : this(hrefTemplate, dataField, String.Empty)
{
}
public HyperLinkItemTemplate(string hrefTemplate, string dataField, string dictionaryName)
{
_hrefTemplate = hrefTemplate;
_dataField = dataField;
_dictionaryName = dictionaryName;
}
#endregion
#region Members
private string _dataField = null, _dictionaryName = String.Empty, _hrefTemplate = null;
public string Text = String.Empty; //plain href text
public void InstantiateIn(Control container)
{
HyperLink href = new HyperLink();
href.DataBinding +=new EventHandler(href_DataBinding);
container.Controls.Add(href);
}
private void href_DataBinding(object sender, EventArgs e)
{
HyperLink href = sender as HyperLink;
DataGridItem dgi= href.NamingContainer as DataGridItem;
if (dgi != null && href!= null)
{
string id = DataBinder.Eval(dgi.DataItem, _dataField).ToString();
href.NavigateUrl = _hrefTemplate.Replace("{}", id);
if (_dictionaryName.Length !=0)
{
NVC nvc = NVC.getInstance(_dictionaryName);
if (nvc != null)
href.Text=nvc[id];
}
else
{
// поскипано — здесь были расширенные возможности формирования из справочника, гиперсцылки с картинкой итд специфические для приложения весчи
}
}
#endregion Members
}