2016-04-29 3 views
1

У меня есть datagrid, где я хочу иметь статус отображаемого отображения в виде текста и запускать командное событие, чтобы я мог обрабатывать его на стороне сервера так же, как asp: ButtonField.текстовое поле datagrid, которое вызывает событие GridView1_RowCommand

Мой провал код:

<asp:ButtonField CommandName="CallHist" 
ButtonType="Button" Text ="<%#GetJobs(Eval("currStatus"))%>" > 
</asp:ButtonField> 

Я получаю сообщение об ошибке:

Literal content ('" >') is not allowed within a 'System.Web.UI.WebControls.ButtonField'.

Я пытаюсь изменить существующие workign ButtonFields:

<asp:ButtonField CommandName="editRecord" ControlStyle-Height="16px" ControlStyle-Width ="16px" ButtonType="image" ImageUrl="images/edit-icon.png"> 
              </asp:ButtonField> 

              <asp:ButtonField CommandName="deleteRecord" ControlStyle-Height="16px" ControlStyle-Width ="16px" ButtonType="Image" ImageUrl="images/close-icon.png"> 
              </asp:ButtonField> 

Я также пробовал, с не удачи, используя <asp:TemplateField>

Как я могу получить поле для отображения данных и быть событием с щелчком/запуском?

ответ

1

ButtonField не поддерживает выражения привязки. Вы можете заменить его на TemplateField с помощью LinkButton или кнопки в своем ItemTemplate. В выражении привязки данных в Text собственности, вы должны заменить внешние двойные кавычки одинарные кавычки, чтобы избежать конфликта с внутренними двойными кавычками:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:LinkButton runat="server" CommandName="CallHist" Text='<%# GetJobs(Eval("currStatus")) %>' CommandArgument='<%# Eval("ID") %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

как я могу получить это пройти DataKey (иначе ид строки), чтобы я мог сделать что-то вроде этого: protected void GridView1_RowCommand (отправитель объекта, GridViewCommandEventArgs e) { int index = Convert.ToInt32 (e.CommandArgument); if (e.CommandName.Equals ("detail")) – kacalapy

+0

Вы можете связать 'CommandArgument' с полем ID. Я обновил свой ответ, чтобы показать это. Вы можете настроить код, чтобы он соответствовал вашему фактическому имени поля идентификатора. – ConnorsFan

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