2017-11-21 6 views
0

ich ein Datenraster haben, die Artikel-Vorlagen mit Labels in sich hat:die Werte auf Null gesetzt, wenn es ein 0 auf Data Grid asp.net

 <asp:datagrid id="ID" runat="server" Width="641px" CellPadding="2" PageSize="2" DataKeyField="IDs" 
          AutoGenerateColumns="False" ShowFooter="True" BorderColor="AliceBlue" OnItemDataBound="ID_ItemDataBound" > 
     <SelectedItemStyle ForeColor="HighlightText" BackColor="Highlight"> </SelectedItemStyle> 
      <AlternatingItemStyle BackColor="WhiteSmoke"> 
     </AlternatingItemStyle> 
          <HeaderStyle Font-Bold="True" BackColor="AliceBlue"> 
     </HeaderStyle> 
          <FooterStyle Font-Bold="True" BackColor="AliceBlue"> 
     </FooterStyle> 
          <Columns> 
      <ItemTemplate> 
<asp:label BorderStyle=None Visible='<%# ReverseBool(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.IsCompleteOrNot"))) %>' runat="server" ID="dataScore" Text='<%# DataBinder.Eval(Container, "DataItem.dataScore") %>'> 
    </asp:label> 
    <asp:label BorderStyle=None Text='<%# GetCompleteIncomplete(Convert.ToInt32(DataBinder.Eval(Container, "DataItem.dataScore")!=null)) %>' Visible='<%# DataBinder.Eval(Container, "DataItem.IsCompleteOrNot") %>' id="txtIsComplete" runat="server"> 
     </asp:label> 
      </ItemTemplate> 
      </columns> 

Und ich versuche die 0er auf leere Stelle zu setzen so auf ItemData von 0 im Datagrid zeigt gebunden ich das Label wie diese zu erhalten und zu versuchen, den Wert auf null zu setzen:

if ((e.Item.ItemType == ListItemType.Item) || 
      (e.Item.ItemType == ListItemType.AlternatingItem)) 
     { 

      Label dataScore = (Label)e.Item.FindControl("dataScore"); // Gets that Label 
      Label txtIsComplete = (Label)e.Item.FindControl("txtIsComplete"); 



if(dataScore .Text == "0") 
      { 
       dataScore.Text = string.Empty; // Tried 
      } 

Antwort

0

Sie eine Funktion schreiben, kann den Wert von DataBinder.Eval

Private String MyFunction(String value) 
{ 
    Return value == "0" ? String.Empty : value; 
} 

<asp:label BorderStyle=None Visible='<%# ReverseBool(Convert.ToBoolean(DataBinder.Eval(Container, "DataItem.IsCompleteOrNot"))) %>' runat="server" ID="dataScore" Text='<%# MyFunction(DataBinder.Eval(Container, "DataItem.dataScore")) %>'> 
zu analysieren
+0

Lassen Sie mich es versuchen – Ahmad

+0

Es besagt, dass die MyFunction ist Unzugänglich aufgrund seiner Schutzstufe und wenn ich versuche, das Private zu Protected es gibt den Fehler für die gesamte Zeile Fehler kann nicht Objekt in String – Ahmad

+0

Sie können die verwenden ternärer Operator direkt: <% # DataBinder.Eval (Container, "DataItem.dataScore") .Equals ("0")? "": DataBinder.Eval (Container, "DataItem.dataScore")%> –

Verwandte Themen