Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为C#CodeBehind中的javascript变量赋值_C#_Javascript_Asp.net - Fatal编程技术网

为C#CodeBehind中的javascript变量赋值

为C#CodeBehind中的javascript变量赋值,c#,javascript,asp.net,C#,Javascript,Asp.net,如何从代码隐藏(C#)为javasctipt变量赋值 _现在,obj.Grp具有值。 alert说:“未定义”我不是100%确定,但我认为您需要一个解决方法才能使其正常工作。因为从逻辑上讲,在后端javascript变量甚至不存在。您可能可以创建一个隐藏字段,并使其成为javascript变量和代码隐藏之间的桥梁。选中此项: 试试这个: 1.在.aspx页面中添加隐藏字段: <asp:HiddenField ID="hidden" runat="server" /> 三,。编写以下

如何从代码隐藏(C#)为javasctipt变量赋值

_现在,obj.Grp具有值。
alert说:“未定义”

我不是100%确定,但我认为您需要一个解决方法才能使其正常工作。因为从逻辑上讲,在后端javascript变量甚至不存在。您可能可以创建一个隐藏字段,并使其成为javascript变量和代码隐藏之间的桥梁。选中此项:

试试这个: 1.在.aspx页面中添加隐藏字段:

<asp:HiddenField ID="hidden" runat="server" />
三,。编写以下脚本以访问该值并将其放入任何变量中:

<script type="text/javascript">
        if (document.getElementById("MainContent_hidden") != undefined) {
            var hiddenVal = document.getElementById("MainContent_hidden").value;
        }
        else {
            var hiddenVal = null;
        }
</script>

if(document.getElementById(“MainContent\u hidden”)!=未定义){
var hiddenVal=document.getElementById(“MainContent_hidden”).value;
}
否则{
var hiddenVal=null;
}

警告:第三部分很棘手。调用getElementById函数时,我们使用的ID与第一步中提供的ID不同。这是因为asp.net改变了这一点,临时解决方法是运行一次页面并查看其源代码。检查隐藏字段的id,并将其放入getElementById函数的步骤3中。你可以寻找更好的替代品,但是现在如果你想的话,可以使用这个。如果您在第3步遇到问题,请告诉我。

我不知道您的问题与代码有什么关系…
但是要从服务器端设置javascript值。。。当然你不能,因为服务器端代码在HTML进入客户端和javascript被执行之前,在服务器端以正确的方式运行

但是你可以做的是让你的服务器端代码生成一段javascript来保存你的价值

<script type="text/javascript">
    var x = <%= ServerSideMethod() %>;
</script>

var x=;

首先,您需要访问客户端上的值。我们可以通过将值存储在hiddenfield中或向控件添加属性来实现这一点。似乎您希望通过使用一个属性来实现这一点,所以让我们先这样做

将以下内容添加到页面加载方法中,以便我们可以访问客户端上的C值

受保护的无效页面加载(对象发送方、事件参数e) { string requiredJSValue=“将您的值放在这里”; 添加(“CSCodeAttribute”,requiredJSValue); }

然后我们需要通过Javascript访问这个值。首先,我们需要获取控件的客户端ID,因为C#将设置此值。注意。我正在使用Jquery检索控件ID。这不是必需的,但我更喜欢它。Jquery是一个javascript框架,可以从www.Jquery.com下载

函数GetCSAttributeValue() { var csControlID=$('#');//获取控件名称。 var requiredJSValue=csControlID.attr(“CSCodeAttribute”);//存储在变量中的值。
}

我看到您想要检索Grp的值,这是一个自定义属性。您需要使用getAttribute函数-因此,您需要使用
\u Obj.getAttribute(“Grp”)
而不是
\u Obj.getAttribute(“Grp”)

另外,我看到您并没有在ode后面的引号中包含客户机id。所以不是

txtCode.Attributes.Add("onchange", "ConstantByCode(this," & DivTitle.ClientID & ");")
你需要说

txtCode.Attributes.Add("onchange", "ConstantByCode(this,'" & DivTitle.ClientID & "');")
请注意客户端id周围的单引号(')

此外,ConstantByCode js函数似乎接受div元素。因此,您需要在其中添加行,以便将客户机id转换为实际的DOM。i、 e

function ConstantByCode(_Obj, _Div) {
   _Div = document.getElementById(_Div);
   .... // rest of the code

得到的错误是什么?而不是
String.prototype.trim=function(){返回this.replace(/^\s+|\s+$/,'')
u可以使用这个:
$.trim(value)
@Javad\u-Amiry谢谢,但在这种情况下,我必须使用纯JavaScript。Ypu不应该硬编码控件的ClientId。使用
代替
var hiddenVal=document.getElementById(“”).value尝试了此操作,但没有成功@shaahin你可以试试@Carlos的代码,如果这行得通,那就太棒了。我的用户控件中有3个对象,它们的变量不一样。
txtCode.Attributes.Add("onchange", "ConstantByCode(this," & DivTitle.ClientID & ");")
txtCode.Attributes.Add("onchange", "ConstantByCode(this,'" & DivTitle.ClientID & "');")
function ConstantByCode(_Obj, _Div) {
   _Div = document.getElementById(_Div);
   .... // rest of the code