получить выбранный индекс строки динамического выбора выпадающего списка - PullRequest
1 голос
/ 30 мая 2009

Я знаю, что вопрос немного изменчив и, возможно, вводит в заблуждение, но у меня есть сетка с выпадающими списками в строках Я создал AddHandler и Делегат для SelectedIndexChanged, и он попадает в сабвуфер. Вот код для этого:

AddHandler ddlmgr.SelectedIndexChanged, AddressOf ddlmgr_SelectedIndexChanged
Public Delegate Sub DropDownList_SelectedIndexChanged(ByVal sender As Object, ByVal e As DropDownList_SelectedIndexChanged)

Protected Sub ddlmgr_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)


End Sub

Как я могу получить идентификатор строки, если GridView_RowCommand не вызывается?

Ответы [ 4 ]

1 голос
/ 01 июня 2009

Надеюсь, это поможет. Если нет, возможно, кто-то с немного более либеральным доступом сможет принять участие в

DropDownList ddl = (DropDownList)sender;
Control p = ddl.Parent;

//you are going to loop because the immediate 
//parent may not be the repeater item but instead a 
//container control of some kind (say a template)
while (p.GetType() != typeof(RepeaterItem))
{
     p = p.Parent;
     if (p == null) return; //we have reached the top of the control tree
}
RepeaterItem ri = (RepeaterItem)p;
int index = ri.ItemIndex
return index;
1 голос
/ 30 мая 2009

Вам нужно будет немного поработать, так как я не могу предоставить 100% -ную специфику, не выписывая код и не тестируя его самостоятельно, что я не могу сделать в настоящее время, но код должен идти по этим направлениям .

в пределах ddlmgr_SelectedIndexChaged,

  1. приведите вашего отправителя в DropDownList
  2. получить доступ к свойству части раскрывающегося списка.
  3. Проверьте, является ли это GridItem (или повторяющимся элементом, или любым другим, у вас есть идея)
  4. Если это так, получите элементы itemindex. Если нет, обратитесь к его родительскому свойству.
  5. Продолжайте, пока не найдете свой объект Row.
0 голосов
/ 08 сентября 2009

Отличная работа У меня работает абсолютно нормально

DropDownList ddl = (DropDownList)sender;
Control p = ddl.Parent;
//you are going to loop because the immediate
//parent may not be the repeater item but instead a 
//container control of some kind (say a template)
while (p.GetType() != typeof(RepeaterItem))
{     
  p = p.Parent;     
  if (p == null) 
      return; //we have reached the top of the control tree
}
RepeaterItem ri = (RepeaterItem)p;
int index = ri.ItemIndexreturn index;
0 голосов
/ 15 июня 2009

DropDownList ddltxt = (DropDownList) отправитель; строка temp2 = ddltxt.SelectedItem.Text; строка temp3 = ddltxt.SelectedItem.Value; string temp = ddltxt.ID.ToString (); int strlength = temp.Length; строка strLastchar = temp.Substring (длина строки - 1, 1); int intlastchar = int.Parse (strLastchar.ToString ()); строка commonpart = temp.Substring (0, длина строки - 1);

    if (intlastchar == 1)
    {
        string targetdropdownid = commonpart + "2";
        DropDownList targetlist = (DropDownList)TableRow11.FindControl(targetdropdownid);
        using (conn = new SqlConnection(ConnectionString))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...