[英]Want to make the visibility true from client side of the control which made invisible from server side
我在页面中有一个文本框。 从服务器端将其可见性设置为 false。 现在我想通过使用 java 脚本使其从客户端可见。 (在这种情况下,不能执行任何回发或部分回发。)
<%@ Page Title="Home Page" Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ControlVisibilityClientSide</title>
<script type="text/javascript">
function toggleVisibility(controlId)
{
var control = document.getElementById(controlId);
if(control.style.visibility == "visible" || control.style.visibility == "")
control.style.visibility = "hidden";
else
control.style.visibility = "visible";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input type="button" ID="btnShowHide" value="Show/Hide" onclick="toggleVisibility('TextBox1');" />
</div>
</form>
</body>
</html>
这工作正常。
但是当我使用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Visible = false;
}
}
上面的代码根本不起作用。
任何人都可以帮助我解决这个问题或任何建议将不胜感激。
如果您将控件设置为visible=false
,它将不会在客户端呈现,但是有一个棘手的解决方案,它将完成同样的事情。
在您设置的页面加载中Visible=false
,您可以将style
设置为display:none
protected void Page_Load(object sender, EventArgs e)
{
TextBox1.Attributes.Add("style", "display:none");
}
它将在客户端呈现控件,但用户看不到,然后您可以在 Javascript function 中看到控件以设置style Diplay:block
,LIKE...
document.getElementById('<%=TextBox2.ClientID %>').style.display = 'block';
一旦控件在服务器端被标记为不可见,就不会为其发出任何标记 (html)。 所以它不能在 JS 中可见,因为它(对应的 html)在客户端不存在。
而不是在服务器端不可见,您需要发出一个启动脚本以将其隐藏在客户端。
在服务器端设置style["visibility"] = "hidden"
。 IE 在 c# btnSave.style["visibility"] = "hidden";
它将渲染按钮,因此在客户端可以访问此元素。 在客户端将可见性样式更改为可见。
$('#btnSave).css("visibility", "visible");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.