У меня есть два вложенных объекта APSxGridView. В DetailRow во внутреннем содержится также кнопка. Я хочу инициализировать кнопку так, чтобы она запускала новое окно в браузере. Для этого мне нужен идентификатор ключа из верхнего GridView.Кнопка в DetailRow нужны ключи от двух верхних вложенных APSxGridViews
GridView1
GridView2
DetailRow
Button
Я уже знаю, как получить ключ от GridView2 - мой существующий код выглядит следующим образом:
protected void btnModify_Init(object sender, EventArgs e)
{
ASPxButton btn = sender as ASPxButton;
GridViewDetailRowTemplateContainer clsdetail = btn.Parent as GridViewDetailRowTemplateContainer;
string partition = "1"; // this should be filled with the GridView1 id
string cls = clsdetail.KeyValue.ToString(); // this is the GridView2 id
// The following code just uses the information.
string panelid = "t" + partition + "-" + cls;
btn.ClientSideEvents.Click =
String.Format("function(s, e){{ window.open('producttag.aspx?partition={0}&cls={1}','{2}'); }}",
partition, cls, panelid);
}
Обратите внимание на string cls = ...
, который получает ключ от внутренней сетки (кнопка находится внутри его подробно).
Как я могу получить ключ для внешнего вида сетки? Могу ли я сделать это через родителей снова? Или есть другой способ?
Обновление: Более чем одна подробная строка может быть расширена во внутреннем виде сетки. Таким образом, я не могу передать идентификатор через какой-то скрытый элемент. Мне нужно, чтобы он находился на уровне кнопок с верхних объектов.