2016-10-13 7 views
0

Ich habe eine Checkboxlist in der Items aus der Datenbank gebunden sind.Disable gridview on checkboxlist selected value

Jetzt was ich will ist, wenn Benutzer überprüft Registrierung/Beförderung Tat Wert aus der Liste, dann die gridview sollte deaktiviert werden.

Ich versuchte mit unten Code.

protected void ddlStatus_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if (ddlStatus.SelectedValue == "30" && strMode == "M") 
    { 
     GridExpInfo.AllowAddingRecords = false; 
    } 
    else 
    { 
     GridExpInfo.AllowAddingRecords = true; 
    } 
} 

Was passiert ist, es zeigt immer den ausgewählten Wert von Agreement aus der Liste, die

Unterhalb der Screenshot der Liste ist

Img

Update

ASPX: -

<asp:CheckBoxList ID="ddlStatus" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlStatus_SelectedIndexChanged"> 
       </asp:CheckBoxList> 

C#

private void BindStatus() 
{ 
    DataTable dtstatus = new DataTable(); 
    OracleDataAdapter dastatus = new OracleDataAdapter("SELECT lookup_code agr_type_code, meaning agr_type " + 
                 "FROM apps.fnd_lookup_values_vl " + 
                "WHERE (NVL ('', territory_code) = territory_code OR territory_code IS NULL " + 
                  ") AND lookup_type = 'XXACL_FARM_AGR_TYPE' " + 
                 "AND (lookup_type LIKE 'XXACL_FARM_AGR_TYPE') " + 
                 "AND (view_application_id = 0) " + 
                 "AND (security_group_id = 0) " + 
                "ORDER BY 1", ObjPriCon); 
    dastatus.Fill(dtstatus); 
    ddlStatus.DataTextField = "agr_type"; 
    ddlStatus.DataValueField = "agr_type_code"; 
    ddlStatus.DataSource = dtstatus; 
    ddlStatus.DataBind(); 
} 
+0

Sie möchten deaktivieren nur neue Zeilen hinzufügen? –

+0

@ mww: ja, ich möchte _only_ deaktivieren, dass – BNN

+0

Bitte zeigen Sie auch, wie Sie checkboxlist –

Antwort

1

dieses Snippet Versuchen

protected void myCheckBoxList_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     bool enableGrid = true; 
     foreach (ListItem listItem in ddlStatus.Items) 
     { 
      if (listItem.Value == "30" && listItem.Selected == true) 
      { 
       enableGrid = false; 
      } 
     } 

     if (enableGrid == true) 
     { 
      //enable grid and/or row inserts here 
      Label1.Text = "enabled"; 
     } 
     else 
     { 
      //disable grid and/or row inserts here 
      Label1.Text = "disabled"; 
     } 
    } 
+0

mochte die Logik, lass mich versuchen und überprüfen ..! – BNN

2

Sie können Eigenschaft AllowUserToAddRows auf false innerhalb Code wie unten gezeigt.

this.yourGrid.AllowUserToAddRows = false; 
this.BindDataGridView(); 

Und verwenden Sie ForEach Schleife für die Überprüfung Ihres Zustandes. Jetzt überprüfen Sie alle ausgewählten Elemente nicht nur zuerst ausgewählt.

protected void ddlStatus_OnSelectedIndexChanged(object sender, EventArgs e) 
    { 
     foreach (ListItem li in ddlStatus.Items) 
     { 
      if (li.Value == "30" && strMode == "M") 
      { 
       GridExpInfo.AllowUserToAddRows = false; 
      } 
      else 
      { 
       GridExpInfo.AllowUserToAddRows = true; 
      } 
     } 

Sie können LINQ auch zum Überprüfen verwenden.

protected void ddlStatus_OnSelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (strMode == "M") 
     { 
      var disable = (from ListItem item in ddlStatus.Items.OfType<ListItem>() 
       where item.Selected 
       where item.Value == "30" 
       select int.Parse(item.Value)).Any(); 

      if (disable) 
      { 
       GridExpInfo.AllowUserToAddRows = false; 
      } 
      else 
      { 
       GridExpInfo.AllowUserToAddRows = true; 
      } 
     } 

    } 
+0

hast du meine Frage gelesen, ich will es nur auf 'Registrierung/Beförderung Tat Bedingung, die nicht ist gefeuert werden. Nur die 'Vereinbarung'-Bedingung wird ausgelöst. – BNN

+0

Wenn ich den else-Teil mit 'true' hinzufüge funktioniert es nicht, aber wenn ich den else Teil entferne funktioniert es gut .. !! – BNN

Verwandte Themen