Frage

Ich weiß, dass die Frage ein wenig abgehackt ist und vielleicht irreführend, aber ich habe eine Gridview mit Dropdownlists auf den Zeilen. Ich habe ein AddHandler und einen Delegierten für die SelectedIndexChanged und es wird auf die Unter. Hier ist der Code für das:

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

Wie kann ich die Zeile des Id, wenn GridView_RowCommand genannt wird, nicht wahr?

War es hilfreich?

Lösung

Great work Funktioniert absolut in Ordnung für mich

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;

Andere Tipps

Sie müssen ein wenig von der Zuarbeit tun, wie ich den Code ohne das Schreiben aus 100% Besonderheiten bieten kippe und es alleine hier zu testen, die ich nicht in der Lage bin derzeit zu tun, aber der Code sollte in diese Richtung geht .

innerhalb der ddlmgr_SelectedIndexChaged,

  1. werfen die Sender zu einem Dropdownlist
  2. Zugriff auf den Teil Eigentum des Dropdownlist.
  3. Überprüfen Sie es ist ein GridItem (oder RepeaterItem oder je nachdem, Sie bekommen die Idee)
  4. Wenn ja, erhalten Sie die Elemente ItemIndex. Wenn dies nicht der Zugriff auf seine übergeordnete Eigenschaft.
  5. Weiter, bis Sie Ihr Zeilenobjekt finden.

Hoffentlich hilft. Wenn nicht, kann vielleicht jemand mit einem bisschen liberalem Zugang läutet

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;

Dropdown ddltxt = (Dropdownlist) sender;         String temp2 = ddltxt.SelectedItem.Text;         String TEMP3 = ddltxt.SelectedItem.Value;         String temp = ddltxt.ID.ToString ();         int strlength = temp.Length;         String strLastchar = temp.Substring (strlength - 1, 1);         int intlastchar = int.Parse (strLastchar.ToString ());         String commonpart = temp.Substring (0, strlength - 1);

    if (intlastchar == 1)
    {
        string targetdropdownid = commonpart + "2";
        DropDownList targetlist = (DropDownList)TableRow11.FindControl(targetdropdownid);
        using (conn = new SqlConnection(ConnectionString))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top