链接按钮中的Command Argument的Asp.net语法错误

时间:2015-03-30 14:09:35

标签: c# asp.net syntax linkbutton

我正在尝试在asp.net中使用foreach内部的linkbutton

我的html以下。

Asp.net html:

<table border="1" style="grid-cell: inherit; border-spacing: inherit;">
                    <thead>
                        <tr>
                            <th>İlan ID
                            </th>
                            <th>İlan Yolu
                            </th>
                            <th>Eklenme Tarihi
                            </th>
                            <th>İlk Güncelleme Tarihi
                            </th>
                            <th>Güncelleme Aralığı
                            </th>
                            <th>Son Güncelleme Tarihi
                            </th>
                            <th>Aktifmi
                            </th>
                            <th>Detay Göster
                            </th>
                        </tr>
                    </thead>
                    <%foreach (var item in list)
                      {%>
                    <tr>
                        <td style="text-align: center">
                            <span><%= item.Id%>    </span>
                        </td>
                        <td>
                            <span><%=item.DosyaAdi %></span>
                        </td>
                        <td style="text-align: center">
                            <span><%=item.EklemeTarihi %></span>
                        </td>
                        <td>
                            <span><%=item.IlkGuncellemeTarihi %></span>
                        </td>
                        <td style="text-align: center">
                            <span><%=item.GuncellemeAraligi %></span>
                        </td>
                        <td style="text-align: center">
                            <span><%=item.SonGuncelleme %></span>
                        </td>
                        <td style="text-align: center">
                            <input type="checkbox" class="chk" id="<%=item.Id %>" <%= item.Aktif ==true ? "checked='checked'" : "" %> />
                        </td>
                        <td style="text-align: center">
                            <asp:LinkButton ID="lbdetay" runat="server" OnClick="lbdetay_Click" CommandArgument="<%=item.Id%>" CommandName="Detay">Detay</asp:LinkButton>
                        </td>
                    </tr>

                    <%  } %>
                </table>

问题:

部分链接按钮如下

  <asp:LinkButton ID="lbdetay" runat="server" OnClick="lbdetay_Click" CommandArgument="<%=item.Id%>" CommandName="Detay">Detay</asp:LinkButton>

如果我使用 CommandArgument =&#34;&lt;%= item.Id%&gt;&#34; 则无效(此处显示语法错误

我错过了linkbutton方面的命令参数代码?

任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:2)

<%= %>相当于Response.Write,它直接输出到html标记。所以它根本无法写入服务器端控件,因为它不知道它们。换句话说,你想做的事情是不可能的。

你应该考虑将这个foreach重构为Repeater,它可以控制控件和html:

<asp:Repeater runat="server" ID="Repeater1">
    <ItemTemplate>
        <td style="text-align: center">
            <span><%# Eval("Id") %></span>
        </td>
        ... same for other tds ...
        <td style="text-align: center">
            <asp:LinkButton ID="lbdetay" runat="server" OnClick="lbdetay_Click" CommandArgument='<%# Eval("Id") %>' CommandName="Detay">Detay</asp:LinkButton>
        </td>
    </ItemTemplate>
</asp:Repeater>

不要忘记数据绑定它:

Repeater1.DataSource = list;
Repeater1.DataBind();