在onserverclick上使用动态超链接时,将变量传递给代码隐藏

时间:2016-02-17 16:44:45

标签: c# asp.net

我显示一个行表,并希望每行旁边都有一个删除按钮。该表是使用循环生成的。每个链接包含onserverclick="deleteScheduleField"。我需要做的是onserverclick="deleteScheduleField(rowid)",但这不能完成。

我见过的大多数指南都说要使用ID字段,但由于这些行是动态的,我不能这样做。每当我尝试使用动态Id时,我会收到以下错误。如果我将以下内容添加到href,我会收到错误id="<%= scheduleField["id"] %>"

  

服务器代码不能包含&lt;%...%&gt;构建体。

我尝试查找解决方案,人们说要使用<%# %>代替<%= %>。我试图这样做并得到以下错误。

 <a runat="server" href="#" onserverclick="deleteScheduleField" class="<%# scheduleField["id"] %>">
  

服务器标签格式不正确。

为了测试我的代码背后的工作,我创建了以下函数,如果我输入一个非动态id,这将完美地工作。

public void deleteScheduleField(object sender, EventArgs e)
{
    HtmlAnchor link = (HtmlAnchor)sender;
    Response.Write("DELETED " + link.ID );
}

如何调用此方法并将其传递给动态值?

1 个答案:

答案 0 :(得分:0)

由于您的引号,服务器标记格式不正确:

 "<%# scheduleField["id"] %>"

应该是这样的:

 "<%# scheduleField['id'] %>"

 "<%# scheduleField[" + id + "] %>"