2

我知道有很多关于这个错误的线程,但我已经查看了所有线程并且无法使其工作。这可能是我忽略的非常小的东西。

这是我现在在 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

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

4

4 回答 4

4

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

尝试

  <asp:Button ID="Button1" runat="server" Text="Button"
             OnClientClick='btn_goToChild_Click(<%# Eval("pk_child_id") %>)' /> 
于 2012-12-05T13:27:40.623 回答
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;
    }
于 2012-12-05T13:28:33.943 回答
2

如果要使用 Javascript 表达式,请使用OnClientClicknot OnClick。这些是不同的附带事件。

于 2012-12-05T13:30:02.020 回答
0

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

于 2012-12-05T13:51:24.060 回答