2014-12-16 2 views
0

У меня есть GridView вложенной внутрь ретранслятора, я хочу, чтобы изменить текст заголовка GridView столбцов на строке DataBound или черезИзменить текст заголовка в Rowdataboud из Gridview вложен в Repeater

<HeaderTemplate> 
<asp:Label runat="server" ID="lblMode" Text='<%# Eval("IsValidForPromoCode")%>'> 
</asp:Label></HeaderTemplate> 

зависимости от того, что удобно.

.aspx страница

<asp:Repeater ID="repRequest" runat="server" OnItemDataBound="repRequest_ItemDataBound"> 
           <ItemTemplate> 
            <table style="width: 100%; font-weight: bold;" cellpadding="5" cellspacing="0"> 
             <tr> 
              <td colspan="12" align="right"> 
               <a id="aSetPreference" runat="server" href="#">Attached Document(s)-</a> 
               <asp:Label ID="lblDocumentCount" CssClass="redFont" runat="server"></asp:Label> 
              </td> 
             </tr> 
             <tr> 
              <td align="left" class="gray-bg" style="width: 8%;"> 
               <b>Request#:</b> 
              </td> 
              <td style="width: 100px;"> 
               <span class="detail-info-color"> 
                <%# Eval("RequestNumber")%></span> 
              </td> 
              <td align="left" class="gray-bg" style="width: 5%;"> 
               <asp:Label ID="lblreqDetID" runat="server" Visible="false" Text='<%# Bind("TravelDetailsID") %>'></asp:Label> 
               <b>Date:</b> 
              </td> 

              <td align="left" class="gray-bg" style="width: 5%;"> 
               <b>Class:</b> 
              </td> 
              <td> 
               <span class="detail-info-color"> 
                <%# Eval("Class")%></span> 
              </td> 
             </tr> 
             <tr> 
              <td colspan="12"> 
               <asp:GridView ID="gvOption" CssClass="gridRow" runat="server" AutoGenerateColumns="False" 
                Width="100%" OnRowDataBound="gvOption_RowDataBound"> 
                <Columns> 
                 <asp:TemplateField HeaderText="#"> 
                  <ItemTemplate> 
                   <%#Container.DataItemIndex+1 %> 
                  </ItemTemplate> 
                 </asp:TemplateField> 
                 <asp:TemplateField HeaderText="Service Provider"> 
                  <ItemTemplate> 
                   <asp:Label ID="txtNumber" runat="server" Width="80px" Text='<%# Bind("Number") %>'></asp:Label> 
                  </ItemTemplate> 
                 </asp:TemplateField> 
                 <asp:TemplateField> 
                  <HeaderTemplate>                 
                   <asp:Label runat="server" ID="lblMode" Text='<%# Eval("IsValidForPromoCode") %>'></asp:Label></HeaderTemplate> 
                  <ItemTemplate> 
                   <asp:Label ID="txtName" runat="server" Width="100px" Text='<%# Bind("Name") %>'></asp:Label> 
                   <asp:Label ID="lblOptionID" Visible="false" runat="server" Width="100px" Text='<%# Bind("optionID") %>'></asp:Label> 
                  </ItemTemplate> 
                 </asp:TemplateField>                
                </Columns> 
               </asp:GridView> 
              </td> 
             </tr> 
            </table> 
           </ItemTemplate> 
          </asp:Repeater> 

код за

protected void gvOption_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    try 
    { 
     GridView gvOption = (GridView)sender; 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     {    
      gvOption.Columns[1].HeaderText = "Last Name";    
     } 
     if (e.Row.RowType == DataControlRowType.Header) 
     { 
      gvOption.Columns[2].HeaderText = "Last Name"; 
     } 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
} 

Какой бы путь я делаю это не осуществление. Пожалуйста, предложите, что мне не хватает.

ответ

1

Попробуйте это: -

if (e.Row.RowType == DataControlRowType.Header) 
{ 
    e.Row.Cells[1].Text = "Last Name";    
} 

Здесь, я жестко значение Cells вам необходимо изменить его соответствующим образом.

Обновление: -
Найти контроль внутри RowDataBound: -

if (e.Row.RowType == DataControlRowType.DataRow) 
{ 
    Label txtNumber = (Label)e.Row.FindControl("txtNumber"); 
    txtNumber.ForeColor = System.Drawing.Color.Red; 
} 
+0

Я уже пробовал это, вы можете обратиться мой код –

+0

@SumitRoy - Пожалуйста, проверьте мой выбор. –

+0

Спасибо, друг, это сработало, но есть ли способ сделать это через EVAL или привязать его к ярлыку внутри шаблона заголовка? –

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