私は新しいですが、C#.NETのDMS(教育用ドメイン)用のウェブサイトを設計します。javascriptのC#変数へのアクセス
私のASPXページの1つでは、accessright
によるとJavaScriptのメニューを無効にしたいと考えています。
accessright
データベーステーブルlogin
がSQLサーバーの属性として格納されており、その1つのC#変数にaccessright
を取得し、その変数にアクセスしたいと考えています。
別の方法がある場合は、教えてください。
私は新しいですが、C#.NETのDMS(教育用ドメイン)用のウェブサイトを設計します。javascriptのC#変数へのアクセス
私のASPXページの1つでは、accessright
によるとJavaScriptのメニューを無効にしたいと考えています。
accessright
データベーステーブルlogin
がSQLサーバーの属性として格納されており、その1つのC#変数にaccessright
を取得し、その変数にアクセスしたいと考えています。
別の方法がある場合は、教えてください。
クライアント側のコードでサーバー側の変数にアクセスすることはできません。唯一の方法は、AJAXライブラリを使用するか、クライアントサイドスクリプトとしてページに変数を注入することです。
はそのようにページにあなたの変数の値を注入:
string script = string.Format("var myVariable = '{0}';", vaiable.ToString());
if (!ClientScript.IsClientScriptBlockRegistered("myScript"))
{
ClientScript.RegisterClientScriptBlock(typeof(_Default), "myScript", script, true);
}
とJavaScriptの機能では、サーバー側の変数としててmyVariableを使用しています。
しかし、私はあなたがClient Side or Server Sideコンセプトから始めるべきであることを物事。
です。これまで思った<%= this.VAR%> ?? –
本当ではないのはなぜですか?私は毎日それを使用し、何も間違っていません。 <%= this.VAR%>方法はスパゲティコードです。私はそれが気に入りません。 – Canavar
これは私がすばやくグーグルのサンプルコードです。 http://www.eggheadcafe.com/community/aspnet/7/63763/using-c-variable-in-java.aspx正しい方向に向けるべきです。 strvariableはC#変数です。
<INPUT id="hd" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 144px" type="hidden" value="<%=strvariable %>">
<script language="javascript">
function Button_Click()
{
alert(document.getElementById('hd').value);
}
</script>
は、まあ、我々はASPの日の間に使用するために使用さ1つのショートカットがあり、これはまだページの分離コードでASP.NET
で働くパブリックプロパティを宣言ASPXでpublic int MyInteger
が
<script>
function GetMyValue()
{
var someVar = <%=this.MyInteger%>;
//Do something
}
</script>
私はScarlet Gardenの解決策以上のものが好きです。どうして?ソリューションを使用して、何かを変更したい場合は再構築する必要はありません! –
私たちのコードベースでは、RemoteInvokeという技術を実装しました。これにより、javascriptはポストバックなしでサーバー上のメソッドを呼び出すことができます。効果的には、サーバー側で動的バインディングを使用した名前による呼び出しです。
メソッドの名前とそのjavascript引数がバンドルされ、サーバーに渡されると、サーバーはそれらを展開し、最も一致するメソッドを呼び出して呼び出します。ルールでは、RemoteInvokable属性を持つメソッドのみを呼び出すことができ、許容されるデータ型は数値、文字列、ブール値です。コールの委譲を処理するコードは、できるだけ近似マッチングを行うシグネチャと一致します(つまり、浮動小数点数をargとして渡すと、その名前とシグネチャを持つメソッドが優先されますが、存在しない場合は、サーバー側の変数にアクセスする。
がRemoteInvokeを介して実装することができますマッチング一体型の引数を持つ1。
これは有望そうですが、実装するポスターのニーズや気にする以上のものでしょう。 :\ –
私は、Javascriptの変数にサーバsilde変数を渡すと私の問題の際にこれを見つけた。これを行うための最善の方法は、使用していますeval()
javascript方法:
function GetMyValue(){
eval("var someVar = " + parseInt<%=this.MyInteger%>"));
//Do something
}
私を楽しむt。 ;)
私は、ユーザーのアクセス権に基づいて何かを隠すことはJavaScriptで行うべきではないことに注意したいと思います。私が実際にそれを見てはいけないなら、私は自分のDeveloper Toolsコンソールを開いて 'iCanHazAccess = true;'を試してみて、メニューをポップアップすることができます。このサーバー側にもケータリングをしているのであれば、それはちょうど真ではない – isNaN1247