ASP.NET Linkbutton未获取commandargument值的动态值

ASP.NET Linkbutton未获取commandargument值的动态值,asp.net,linkbutton,Asp.net,Linkbutton,在这里,myeid没有得到值,但总是显示 我已经尝试了所有其他选项,如或标记“的输出更可能类似于使用响应。在代码中写入。因此,这些标记用于向响应对象显示值 这就是为什么,根据我的理解,除非使用数据绑定,否则不能使用这些标记来设置控件的commandargument属性。如果您使用的是数据绑定,那么这些标记将用于设置控件的属性 因为您在这里循环遍历html表上列表中的每个项目,所以我的建议是使用GridView或Repeater,然后通过列表对象进行绑定。如果使用这种方法,还可以消除html表中不

在这里,myeid没有得到值,但总是显示

我已经尝试了所有其他选项,如
标记
的输出更可能类似于使用
响应。在代码中写入
。因此,这些标记用于向响应对象显示值

这就是为什么,根据我的理解,除非使用数据绑定,否则不能使用这些标记来设置控件的commandargument属性。如果您使用的是数据绑定,那么这些标记将用于设置控件的属性

因为您在这里循环遍历html表上列表中的每个项目,所以我的建议是使用GridView或Repeater,然后通过列表对象进行绑定。如果使用这种方法,还可以消除html表中不需要的格式问题

提及

如果您想使用repeater,那么您可以使用这些特定的标记,这应该是您的代码(不是实际的代码,只是示例代码)



您可以改为修改服务器端代码中的属性吗?为什么不使用
中继器
?我也有同样的问题,您找到解决方案了吗?
    <%
      foreach (training t in traininglist)
       {
    %>                          
   <tr>
      <td><%=t.TrainingId%></td>
      <td><%=t.TrainingName%></td>
      <td>
         <asp:LinkButton runat="server" ID="EditBtn"
         Text="Edit" OnCommand="editbtn_OnCommand" 
         CommandArgument='<%# t.TrainingId %>' CommandName="edit" />
      </td>

    </tr>
 <% } %>
public void editbtn_OnCommand(object sender, CommandEventArgs e)
{
   String myeid = e.CommandArgument.ToString();
   ....
}
<asp:Repeater id="myRepeater" runat="server" >
  <ItemTemplate>
    <div>
      <asp:LinkButton runat="server" id="EditBtn" CommandName="edit" 
        CommandArgument="<%#Container.DataItem.TrainingId %>" Text="Edit" 
        OnCommand="editbtn_OnCommand" />      
    </div>
  </ItemTemplate>
</asp:Repeater>