【问题标题】:server tag not well formed error服务器标签格式错误
【发布时间】:2012-12-05 13:23:48
【问题描述】:

我知道有很多关于这个错误的线索,但我已经浏览了所有这些线索,但无法让它发挥作用。这可能是我忽略的非常小的东西。

这是我现在的代码,在一个 asp:Button 组件中

<asp:Button ID="btn_profile" runat="server" Text="Bekijk de wenslijst"
CssClass="wenslijst_preview_btn" 
OnClick="btn_goToChild_Click(<%# Eval("pk_child_id") %>)"/>

我尝试了多种方法,例如:

OnClick='btn_goToChild_Click(<%# Eval("pk_child_id") %>)'

然后我收到以下错误:

preprocessor directives must appear as the first non-whitespace character on a line

如果您需要查看更多代码,请告诉我!

【问题讨论】:

    标签: c# asp.net servertag


    【解决方案1】:

    OnClick 是服务器端事件,因此应该只是服务器端事件处理程序的名称。 OnClientClick(如果可用)是客户端事件处理程序,因此需要一个 JavaScript 表达式来计算。

    试试

      <asp:Button ID="Button1" runat="server" Text="Button"
                 OnClientClick='btn_goToChild_Click(<%# Eval("pk_child_id") %>)' /> 
    

    【讨论】:

      【解决方案2】:
      <asp:Button ID="btn_profile" runat="server" Text="Bekijk de wenslijst"
       CssClass="wenslijst_preview_btn" CommandArgument='<%# Eval("pk_child_id") %>'
       OnClick="btn_goToChild_Click"/>
        protected void btn_goToChild_Click(object sender, EventArgs e)
          {
              Button btn= (Button) sender;
              if (btn==null) return;
              var id =btn.CommandArgument;
               // Or int id=(int)btn.CommandArgument;
          }
      

      【讨论】:

      • 我认为这行得通!但是在 CommandArgument 后面的代码中无法识别...我需要导入命名空间吗?
      • 使用 System.Web.UI.WebControls;
      【解决方案3】:

      如果要使用 Javascript 表达式,请使用 OnClientClick 而不是 OnClick。这些是不同的会外活动。

      【讨论】:

        【解决方案4】:

        OnClick 仅用于服务器端方法,对于客户端调用,您应该使用“OnClientClick”属性。

        【讨论】:

          猜你喜欢
          • 2013-02-23
          • 2014-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多