2015-03-05 3 views
0

Я это GridViewПолучить значение GridView TemplateField

<asp:GridView ID="gvPrices" runat="server" DataSourceID="ldsPrices" AllowPaging="true" 
    AllowSorting="true" ShowHeader="true" PageSize="20"> 
    <Columns> 
     <asp:BoundField DataField="CapId" HeaderText="CapId" SortExpression="CapId" /> 
     <asp:TemplateField HeaderText="Vehicle"> 
      <ItemTemplate> 
       <%# Eval("Manufacturer") %>&nbsp;<%# Eval("Model") %>&nbsp;<%# Eval("Derivative") %> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="Term" HeaderText="Term" SortExpression="Term" /> 

Когда я итерацию через него, чтобы получить значения, то первый из них хорошо, но второй один, как это поле шаблона не имеют текстовое свойство. Как я могу получить доступ к его стоимости? Я думал о FindControl, но я не знаю идентификатора?

sb.Append(gvPrices.Rows[i].Cells[0].Text + ','); // has a value 
sb.Append(gvPrices.Rows[i].Cells[1].Text + ','); // doesn't have a value 

Благодаря

+1

Это не работает для поля шаблона, только граничное поле. –

ответ

1
Label val = (Label) gvPrices.Rows[i].Cells[1].FindControl('YourColumn'); 

Если управление в области шаблона является Ярлык, а затем преобразовать его к этому.

<asp:Label ID="lblVehicle" runat="server" Text='<%# Eval("Manufacturer") + " " + Eval("Model") + " " + Eval("Derivative") %>'></asp:Label> 

Я думаю, что-то вроде выше.

+0

sb.Append (gvPrices.Rows [i] .Cells [1] .FindControl ('Vehicle'). - Кажется, что свойство Text для FindControl не имеет свойства Text? –

+0

Извините, мое плохое. Это правильно. t иметь свойство Text. Вам необходимо его преобразовать. –

+0

Вам нужно иметь весь текст внутри поля шаблона в тексте ярлыка, а затем получить идентификатор ярлыка в «YourColumn» и получить его значение в качестве ответа «Обновлен». –

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