2015-03-30 1 views
0

Я пытаюсь использовать LinkButton внутри Еогеасп в asp.netAsp.net ошибка синтаксиса для аргумента командной строки в 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> 

Вопрос:

В части LinkButton ниже

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

Если я использую CommandArgument =»<% = пункт .Id%> " не работает (здесь отображается синтаксическая ошибка)

Где я пропущу внутри кода для аргумента команды в linkbutton?

Любая помощь будет оценена по достоинству.

Благодаря

+2

не используйте foreach внутри веб-формы ASP.net. Вместо этого используйте ретранслятор или listview, и вы сможете использовать привязку 'CommandArgument =" <% # Item.Id%> "' –

+0

спасибо за ответ, нет ли какого-либо решения foreach? – Beyto

+0

Это не так, как была создана веб-форма ASP.net. У вас будет много проблем, если вы продолжите использовать его таким образом. Почему вы хотите использовать инструкцию 'foreach'? –

ответ

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(); 
+0

спасибо, я меняю: – Beyto

Смежные вопросы