17 Stimmen

asp.net 4.0: Gibt es eine Entsprechung von ClientIDMode für die Namen von INPUTs?

Ich habe eine asp:ListView deren ClientIDMode auf Predictable gesetzt ist. Sein ItemTemplate enthält ein asp:textbox .

Die ID des Textfelds verhält sich so, wie ich es erwarte, aber seine name verwendet immer noch einen Algorithmus, der an die AutoID erinnert:

<input name="lvFields$ctrl0$tbVal" id="lvFields_tbVal_somekey" type="text"/>

Gibt es eine Möglichkeit, den Namen der Eingabe so zu gestalten, dass er sich wie die ID verhält?

(Bearbeitung als Antwort auf die Fragen unten:)

El Name des Eingabeelements ist das, was in den POST-Daten steht. Wenn also ein Postback die Liste ändert, an die die ListView gebunden ist (z. B. durch den Austausch von zwei Elementen), werden die Werte aus den Textfeldern mit den falschen Schlüsseln verknüpft, weil das Framework sie auf der Grundlage des Name und nicht die ID .

0voto

Siz S Punkte 826

Eine Jquery-Lösung

 function removeNameAttribute() {
            $('input, select').each(function () {
                $(this).removeAttr("name");
            });
        }

0voto

Arthur Long Punkte 1

//Verwenden Sie ein HtmlGenericControl

HtmlGenericControl input = new HtmlGenericControl("input");``
input.ID = "lvFields_tbVal_somekey";
input.Attributes.Add("name", "tbVal");
input.Attributes.Add("type", "text");
input.ClientIDMode = ClientIDMode.Static;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X