前台能否直接绑定Request.QueryString["additive"]

中文命名法 2016-07-05 03:14:37
<asp:Label ID="添加剂" Text='<%# Request.QueryString["additive"] %>' runat="server"></asp:Label>
这个写法没成功,能这样子做吗?
前台绑和后台绑哪个性能更好?
...全文
110 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
samsone 2016-07-05
  • 打赏
  • 举报
回复
服务器控件直接赋值啊。。 其他

public string additive = string.Empty;
 protected void Page_Load(object sender, EventArgs e)
    {

        additive=Request.QueryString["additive"];
 }
<asp:Label ID="添加剂" Text='<%# additive %>' runat="server"></asp:Label> html的input标签

  function GetQueryString(name) {
            var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
            var r = window.location.search.substr(1).match(reg);
            if (r != null) return unescape(r[2]); return null;
        }
  $(document).ready(function () {
       $("#id").val(GetQueryString("additive"));
  })
具体看项目设计需求吧..
  • 打赏
  • 举报
回复
asp 的那种数据绑定语法,它会在页面 Render 时自动读取所绑定的表达式的值,这是其方便之处。 asp.net 新增的(其实也是13、14年前新增的)语法,则可以控制“推”数据的时机。例如你可能不是在 Page_PreRender 事件处理中来执行 DataBind,而是在某些深度的事件处理或者控件处理中。例如你可能经常写 GridView1.DataBind() 这样的代码,这就不用担心这条语句之后、页面Render 之前还有什么代码对数据做了诡异的改变。
中文命名法 2016-07-05
  • 打赏
  • 举报
回复
引用 3 楼 sp1234 的回复:
这是 asp.net 的 <%= %>跟 <%# %> 两种数据绑定语法的不同。 前者,是asp 集成的方式,它直接在页面 Render 阶段阻断 html 生成,而使用 htmlTextWriter.Write(...) 方式硬编码一些简单的变量内容。后者其实才是 asp.net 正规方式,你的程序中可以在任何时候调用 DataBind() 来绑定数据(这其实完全可以取代 mvc 的概念)。不单是可以对某个asp.net 现成的内置控件执行 DataBind,你也可以对用户控件、整个页面执行 DataBind,这样 asp.net 就会自动调用控件内的所有子控件的 DataBind。所以上面代码也可以改为
using System;
 
public partial class _Default : System.Web.UI.Page
{
    protected void Page_PreRender(object sender, EventArgs e)
    {
        this.DataBind();
    }
}
讲得很透彻,看得很明白。
  • 打赏
  • 举报
回复
这是 asp.net 的 <%= %>跟 <%# %> 两种数据绑定语法的不同。 前者,是asp 集成的方式,它直接在页面 Render 阶段阻断 html 生成,而使用 htmlTextWriter.Write(...) 方式硬编码一些简单的变量内容。后者其实才是 asp.net 正规方式,你的程序中可以在任何时候调用 DataBind() 来绑定数据(这其实完全可以取代 mvc 的概念)。不单是可以对某个asp.net 现成的内置控件执行 DataBind,你也可以对用户控件、整个页面执行 DataBind,这样 asp.net 就会自动调用控件内的所有子控件的 DataBind。所以上面代码也可以改为
using System;
 
public partial class _Default : System.Web.UI.Page
{
    protected void Page_PreRender(object sender, EventArgs e)
    {
        this.DataBind();
    }
}
  • 打赏
  • 举报
回复
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:Label ID="添加剂" Text='<%# Request.QueryString["additive"] %>' runat="server"></asp:Label>
    </form>
</body>
</html>
using System;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_PreRender(object sender, EventArgs e)
    {
        this.添加剂.DataBind();
    }
}
正怒月神 版主 2016-07-05
  • 打赏
  • 举报
回复
服务器控件貌似不行。 1 要么 直接用input标签,不用服务器控件。 2 要么 后台页面直接给服务器控件赋值。

62,270

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧