getElementById().Wert in JS, C#, und ASP.NET
Habe ich versucht, C# und JS kommunizieren miteinander über eine versteckte Eingabe. Ich sah ein in verschiedenen Foren und codes, aber keiner von Ihnen scheint genau dieses problem. Viele von Ihnen hatten ein syntax-Fehler, und ich habe versucht zu Debuggen. Es ist vor allem die Linie
document.getElementById("Hidden1").value = str;
scheint das nicht zu funktionieren. Ich habe versucht, indem Warnmeldungen vor und nach dieser Zeile. Setzen Sie den Alarm, bevor die Ursachen der alert-pop-up, sondern setzen es nach nicht dazu führen, dass es zu pop-up, das lässt mich vermuten, dass von dieser Codezeile noch mehr. Keine Fehlermeldungen angezeigt wurden, wenn ich lief es im Visual Studio 2010 über den Chrome-browser. Wenn jemand helfen kann, mit ihm überhaupt, es würde sehr geschätzt werden.
Wenn ich entfernen Sie die updatepanels, es würde immer noch nicht funktionieren. Es war eigentlich, was ich versucht habe auf den ersten, aber ich dachte, es könnte haben gewesen, wenn die Website aktualisiert, während die Schaltfläche klicken, also versuchte ich das implementieren der AJAX-updatepanel-Eigenschaft.
ASP.NET CODE
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication10._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
<ContentTemplate>
<div>
<input id="Hidden1" type="hidden" name="Hidden1" runat="server" value="replaceme" />
<asp:Button ID="Button1" runat="server" OnClientClick="abc()" Text="Button"
onclick="Button1_Click" />
</div>
<div>
</ContentTemplate>
</asp:UpdatePanel>
<script type="text/javascript">
function abc() {
var str = "value";
document.getElementById("Hidden1").value = str;
}
</script>
</div>
</asp:Content>
C# - CODE
protected void Button1_Click(object sender, EventArgs e)
{
MessageBox.Show(Hidden1.Value);
}
InformationsquelleAutor user1028998 | 2011-11-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein problem ist wahrscheinlich, weil die asp.net Steuerelement-id und client-id für Hidden1 sind nicht das gleiche. Ansicht der HTML-Quelle, um sicher zu sein, aber ich denke, Sie müssen so etwas wie:
InformationsquelleAutor Sam
Client-side-element nicht mit der id "Hidden1", es werden eine id, die automatisch generiert werden, indem ASP.NET.
Das ist, warum Sie immer das problem auf der client-Seite:
document.getElementById('Hidden1')
zurücknull
, und Sie dann versuchen, auf denvalue
Eigenschaft, dassnull
Referenz.Müssen Sie die automatisch generierte id in JavaScript statt, über die
ClientID
Eigenschaft:<ASP:
tags jemals. Da ASP verwirrt mit Ihrem HTML.Aber von der client-Seite, die messagebox zeigt "replaceme", das war Hidden1 ' s Wert
Der C# - code läuft auf der server-Seite. Der JavaScript-code läuft auf der client-Seite.
InformationsquelleAutor LukeH