2017-12-22 1 views
0

Ich versuche HTML-Eingabefeld Text Wert aus dem C# hinter Code. Die Art und Weise, wie diese Eingaben erstellt werden, erfolgt über eine Java Script-Schleife. So habe ich nicht viel Glück haben den Lauf auf dem Server hinzufügen oder den Wert durch <% zuweisen =%>Legen Sie den Wert des Eingabetextfeldes aus Code hinter C# Asp.net

Hier ist mein Skript

var mytable = "<table class=\"Inside\" >"; 
var z = 0; 
var value = 0; 
for (var i = 1; i <= 3; i++) { 
mytable += "<tr>"; 

for (var C1 = 1; C1 <= 3; C1++) { 
    mytable += "<td>"; 

    mytable += "<table class=\"inside\" >"; 
    for (var C2 = 1; C2 <= 3; C2++) { 
     mytable += "<tr>"; 

     for (var j = 1; j <= 3; j++) { 
      z++; 
      //value = z.toString(); 
      //if (value % 3 != 0) value= ; 

      mytable += "<td> <input id=" + i + "x" + j + " name=" + z + " 
type=\"text\" maxlength=\"1\" oninput=\"this.value=this.value.replace(/[^0- 
9]/g,'');\" value= " +z+ " runat=\"server\" /> </td>"; 


     } 




     mytable += "</tr>"; 
    } 


    mytable += "</tr></table>"; mytable += "</td>";} 



mytable += "</tr>"; 
} 


mytable += "</tr></table>"; 

$(document).ready(function() { 
$("#myTable").append(mytable); 


}) 

Ich versuche, die Eingabe von C# etwas zugreifen wie

protected void Button2_Click(object sender, EventArgs e) 
    { 

1x2.value="1"; 

} 

Antwort

0

Sie können HTML-Steuerelemente nur mit JavaScript erstellen. Wenn Sie einige Daten an den Server senden möchten, können Sie die gewünschten Werte mithilfe von JavaScript abrufen und sie einem ASP-Steuerelement (z. B. HiddenField) zuweisen und dann auf dessen Wert auf der Serverseite zugreifen.

var mytable = "<table class=\"Inside\" >"; 
 
var z = 0; 
 
var value = 0; 
 
for (var i = 1; i <= 3; i++) { 
 
    mytable += "<tr>"; 
 
    for (var C1 = 1; C1 <= 3; C1++) { 
 
    mytable += "<td>"; 
 
    mytable += "<table class=\"inside\" >"; 
 
    for (var C2 = 1; C2 <= 3; C2++) { 
 
     mytable += "<tr>"; 
 
     for (var j = 1; j <= 3; j++) { 
 
     z++; 
 
     //value = z.toString(); 
 
     //if (value % 3 != 0) value= ; 
 

 
     mytable += "<td> <input id=" + i + "x" + j + " name=" + z + " type=\"text\" maxlength=\"1\" oninput=\"this.value=this.value.replace(/[^0-9]/g,'');\" value= " + z + " /> </td>"; 
 
     } 
 
     mytable += "</tr>"; 
 
    } 
 
    mytable += "</tr></table>"; 
 
    mytable += "</td>"; 
 
    } 
 
    mytable += "</tr>"; 
 
} 
 
mytable += "</tr></table>"; 
 

 
function CreateTable() {} 
 

 
$(document).ready(function() { 
 
    $("#myTable").append(mytable); 
 
}) 
 

 
function getInputValue(element) { 
 
    $("#<%= HiddenField1.ClientID %>").val($("#1x2").val()); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="myTable"></div>

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <br /> 
     <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" OnClientClick="getInputValue(this);" /> 
     <br /> 
     <br /> 
     <asp:Label ID="Label1" runat="server" Text="HiddenField Value:"></asp:Label> 
     <asp:HiddenField ID="HiddenField1" runat="server" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

C# -Code-behind

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Label1.Text += "<br />Input 1x2: " + HiddenField1.Value; 
} 
+0

Hallo Attila, danke für die Rückmeldung. Ich kann tatsächlich die Eingabefeldwerte mit Request.Form ["1x2"] aus dem Code dahinter bekommen. Problem ist, wie diese Eingaben Feld Wert aus dem Code hinter setzen oder ändern. Ich möchte den Wert des Eingabefeldes ändern es selbst nicht kopieren und es ändern –

+0

@Adam Bahrani, ich fürchte, Sie können das nur auf Client mit JavaScript ähnlich wie mein Beispiel tun. Natürlich gibt es viele andere Ansätze, aber wiederum nur auf Client-Seite mit JavaScript. –

0

Wenn Sie Id haben, in der Eingabe können Sie verwenden.

protected void Button1_Click(object sender, EventArgs e) 
{ 
    System.Text.StringBuilder sb = new System.Text.StringBuilder(); 
    sb.Append(@"<script language='javascript'>"); 
    sb.Append(@"$('#YOUR_IDINPUT').val('"+SomeValue+"');"); 
    sb.Append(@"</script>"); 
    ScriptManager.RegisterStartupScript(Button1,this.GetType(), "JSCR", 
    sb.ToString(),false); 
} 

Sorry, wenn ich dir nicht helfen kann.

+0

Danke Mikhail. Das ist etwas, das definitiv helfen könnte. Aber ich kann es nicht funktionieren. einige Antworten helfen vielleicht. was ist diese Zeile ScriptManager.RegisterStartupScript (Button1, this.GetType(), "JSCR", sb.ToString(), false); und was ist JSCR speziell. Können Sie einen Wert anhängen? –

+0

Dies ist die Zeile für die Arbeit mit dem Skript. Er registriert Ihr Skript und fügt es Ihrer Seite hinzu. "JSCR" ist der simple Schlüssel des Skripts, den Sie aufrufen können, wie Sie möchten. Mit dieser Methode können Sie alle Javascript-Methode verwenden, um Modal zu öffnen oder zu verbergen, mit einigen Bootstrap-Fortschrittsbalken, Diagramm. –

Verwandte Themen