2015-10-27 4 views
0

У меня есть ниже GridView:Как удалить/заменить подстроку из столбца GridView?

enter image description here

Я хочу удалить 0:00:00 от даты столбца, если существует. Я изменяю dataformatstring, но удаляю 9:09:15.

Я использую auto-generate fields и DataBind на .cs файла.

Я попытался Replace, но не работает:

e.Row.Cells[0].Text = e.Row.Cells[0].Text.Replace("0:00:00"," "); 

Как я могу это сделать?

Gridview:

<asp:GridView ID="GridView4" runat="server" BackColor="White" 
    BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
    GridLines="Vertical" Width="98%" 
    Height="100%" onrowdatabound="GridView4_RowDataBound" RowStyle-HorizontalAlign="Center" > 
    <AlternatingRowStyle BackColor="#DCDCDC" /> 
    <FooterStyle BackColor="#CCCCCC" ForeColor="Black" /> 
    <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" /> 
    <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" /> 
    <RowStyle BackColor="#EEEEEE" ForeColor="Black" /> 
    <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" /> 
    <SortedAscendingCellStyle BackColor="#F1F1F1" /> 
    <SortedAscendingHeaderStyle BackColor="#0000A9" /> 
    <SortedDescendingCellStyle BackColor="#CAC9C9" /> 
    <SortedDescendingHeaderStyle BackColor="#000065" /> 
</asp:GridView> 

Код:

protected void Page_Load(object sender, EventArgs e) 
    { 
     try 
     { 
      OleDbConnection Connection6; 
      using (Connection6 = new OleDbConnection("Provider=MSDAORA.1;Data Source=XXXXXX:1521/orcl;Persist Security Info=True;Password=XXXXXXX;User ID=XXXXXX;")) 
      { 
      string sqlQuery = "select * from db.user"; 

      using (OleDbDataAdapter cmd = new OleDbDataAdapter(sqlQuery, Connection6)) 
      { 
       Connection6.Open(); 
       DataTable dt = new DataTable(); 
       cmd.Fill(dt); 
       GridView4.DataSource = dt; 
       GridView4.DataBind(); 

       Connection6.Close(); 
      } 
     } 
    } 
     catch (Exception) 
     { 
     } 
    } 
+0

Каков тип столбца _that_? Вы можете установить его свойство 'DataFormatString' как' {0: dd.MM.yyyy} 'например. –

+0

Где вы указываете этот код 'e.Row.Cells [0] .Text = e.Row.Cells [0] .Text.Replace (" 0:00:00 "," ");' я предпочитаю использовать то же самое в databind if not –

+0

где находится раздел столбца в GridView? – HaveNoDisplayName

ответ

3

Вы можете использовать RowDataBound событие, а затем контроль этикеток с использованием FindControl

<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server" 
     onrowdatabound="GridView1_RowDataBound"> 
    <Columns>  
    <asp:TemplateField HeaderText="Date"> 
     <ItemTemplate> 
     <asp:Label ID="lblDate" Text='<%# Eval("Date") %>' runat="server"></asp:Label> 
..... 
</Columns> 
</asp:GridView> 

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    {  
    var lbl = e.Row.FindControl("lblDate") as Label; 
    lbl.Text = lbl.Text.Replace("0:00:00", "");  
    } 
} 

Если вы не имеете шаблона поля и с помощью Bound Field затем использовать

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
    if(e.Row.Cells[0].Text.Contains("0:00:00")) 
     e.Row.Cells[0].Text = e.Row.Cells[0].Text.Replace("0:00:00", ""); 
    } 
} 
+0

Извините, я не сказал этого, я использую 'auto-generate fields'. – phe

+0

Можете ли вы показать свой код aspx в виде сетки? – HaveNoDisplayName

+0

Добавлено, спасибо. – phe

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