Σετ HTML όνομα πλαίσιο ελέγχου εισόδου στην προβολή λίστας

ψήφοι
0

Προσπαθώ να προσθέσετε ένα πλαίσιο ελέγχου σε μια προβολή λίστας με αξία, όπως ταυτότητες των εγγραφών από τη βάση δεδομένων ώστε να μπορώ να επιτρέπει στο χρήστη να ελέγχει αυτά που θέλετε να διαγράψετε και, όταν κάνετε κλικ στο κουμπί διαγραφής μπορώ να πάρω συλλογή αξία κουτάκι με το αίτημα .μορφή.

Το πρόβλημά μου είναι, γιατί κουτάκι σε μια ASP.NET listview καθιστά το όνομα listview στο όνομα της ιδιότητας του πλαισίου ελέγχου, που με εμποδίζει να κάνω Request.Form [ «checkboxname»].

Δεν θέλω να χρησιμοποιήσετε Listviews διαγράψετε τις εντολές, αλλά απλά να χρησιμοποιήσετε Request.Form να πάρει τη συλλογή επιλεγμένες τιμές.

Πώς μπορώ να ρυθμίσω το όνομα του πλαισίου ελέγχου htmlinput έτσι .NET δεν αλλάζει αυτό το καταστήσει χρόνο;

Εχω προσπαθήσει:

        ListViewDataItem dataItem = (ListViewDataItem)e.Item;
        HtmlInputCheckBox _CheckBoxDelete = (HtmlInputCheckBox)e.Item.FindControl(CheckBoxDelete);

            _CheckBoxDelete.Visible = true;
            _CheckBoxDelete.Value = DataBinder.Eval(dataItem.DataItem, id).ToString();
            _CheckBoxDelete.Name = deletechecked;

Αλλά εξακολουθεί να αποδίδει όπως:

<input name=PmList$ctrl0$CheckBoxDelete type=checkbox id=PmList_ctrl0_CheckBoxDelete value=3 />
Δημοσιεύθηκε 09/08/2009 στις 15:09
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
0

Έχω διευθετηθεί με:

    string idCollectionTodelete = string.Empty;

    foreach (string x in Request.Form)
    {
        if (x.IndexOf("CheckBoxDelete") > -1)
        {
             idCollectionTodelete += Request.Form[x] + ",";
        }

    }
    new DB().DeleteUserPm(
      ActiveUsername(), subdomain, idCollectionTodelete.TrimEnd(','));

Δεν είναι μια ιδανική λύση, αλλά δουλεύει για μένα.

Απαντήθηκε 09/08/2009 στις 16:14
πηγή χρήστη

ψήφοι
1

Αυτό συμβαίνει επειδή ListView είναι ένα ονομασίας εμπορευματοκιβωτίων. Μπορείτε να πάρετε γύρω από αυτό σε μια-δυο τρόπους, αλλά όλα καταλήγουν στην επιλογή του:

  • Καθιστώντας το HTML θέλετε.
  • Τραβώντας τα επιλεγμένα στοιχεία με διαφορετικό τρόπο.

Το πρώτο είναι εφικτό, αλλά τότε μάλλον θα χάσει πολλά ASP.NET ενσωματωμένη λειτουργικότητα. Θα συμβούλευα ενάντια σε αυτό αν δεν είστε βαθιά εξοικειωμένοι με τον κύκλο ζωής ελέγχου.

Έχετε όλα όσα χρειάζεστε για το τράβηγμα των τιμών κατά τρόπο ASP περιμένει:

HtmlInputCheckBox _CheckBoxDelete = (HtmlInputCheckBox)item.FindControl("CheckBoxDelete");

Απλά πρέπει να περιμένουμε για την ιεραρχία ελέγχου που πρέπει να συμπληρωθεί, και στη συνέχεια βρόχο πάνω από τις ListView.Items ψάχνει για τα πλαίσια ελέγχου. «Διαγραφή» χειρισμού συμβάντων κουμπιού σας είναι πιθανώς ένα καλό μέρος για να καλέσετε αυτό από.

Παρεμπιπτόντως, γιατί χρησιμοποιείτε ένα HtmlInputCheckbox, παρά ένα πλαίσιο ελέγχου;

Απαντήθηκε 09/08/2009 στις 18:15
πηγή χρήστη

ψήφοι
0

το κάνω

    List<HtmlInputCheckBox> chkDeleteContacts = new List<HtmlInputCheckBox>();

    foreach (RepeaterItem item in rptrFamilyContacts.Items)
    {
        chkDeleteContacts.Add((HtmlInputCheckBox)item.FindControl("chkDeleteContact"));
    }

    foreach(HtmlInputCheckBox chkDeleteContact in chkDeleteContacts)
    {
        //Delete Contact
        if(chkDeleteContact.Checked)
            blnStatus = BusinessUtility.DeleteConsumerContact(LoginConsumerID, chkDeleteContact.Value);
    }

Ελαφρώς πιο εύκολο κατά τη γνώμη μου,

Απαντήθηκε 04/02/2010 στις 20:35
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more