Reputation: 87
Here I am working with gridview here is the gidview binding
conn = new SqlConnection(strconnection);
string squery = "sql query";
da = new SqlDataAdapter(squery, conn);
ds = new DataSet();
da.Fill(ds, "tbl1");
GridView1.DataSource = ds;
GridView1.DataBind();
This the gridview control asp code
<asp:GridView ID="GridView1" runat="server" GridLines="None"
HeaderStyle-CssClass="grid_header"
RowStyle-CssClass="grid_item"
RowStyle-Height="30px"
AutoGenerateColumns="false" Width="775px" EmptyDataText="Empty">
<Columns>
<asp:BoundField HeaderText="Order Code" DataField="ordercode"
HeaderStyle-HorizontalAlign="Left"
ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Transation Code" DataField="transcode"
HeaderStyle-HorizontalAlign="Center"
ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Plan Name" DataField="product"
HeaderStyle-HorizontalAlign="Center"
ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Plan Started" DataField="Start_d"
HeaderStyle-HorizontalAlign="Center"
ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Plan Ending" DataField="End_d"
HeaderStyle-HorizontalAlign="Center"
ItemStyle-HorizontalAlign="Center" />
<asp:CheckBoxField HeaderText="Payed" DataField="Payed"
HeaderStyle-HorizontalAlign="Center"
ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Pay Date" DataField="PayDate"
HeaderStyle-HorizontalAlign="Center"
ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Payed Amt" DataField="amtpaid"
HeaderStyle-HorizontalAlign="Center"
ItemStyle-HorizontalAlign="Center" />
<asp:BoundField HeaderText="Pay Amt" DataField="PayAmount"
HeaderStyle-HorizontalAlign="Center"
ItemStyle-HorizontalAlign="Center" />
</Columns>
</asp:GridView>
This is result emp like this
Header1 header2 header3 header4
1 asdas 22sdas asdasda
2 sasa asdasas
3 asdas
4 asdasas
like this result
Here my problem is I want show the NULL places just show the "EMPTY" Message. How can I do that?
Upvotes: 2
Views: 9409
Reputation: 98848
Check out BoundField.NullDisplayText
Gets or sets the caption displayed for a field when the field's value is null.
Sometimes a field's value is stored as null
in the data source. You can specify a custom caption to display for fields that have a null
value by setting the NullDisplayText
property.
In your case, you can use it like;
<asp:BoundField NullDisplayText="EMPTY" HeaderText="Order Code" DataField="ordercode" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" />
Since you didn't write your sql query, as an alternative, you can use ISNULL
functions for your columns.
Replaces NULL with the specified replacement value.
For example;
SELECT ISNULL(Column1, "EMPTY")
Since you asked, How to change null text color? You can use RowDataBound
event for this process. For example;
<asp:GridView ID="gridview1" runat="server" OnRowDataBound="RowDataBound">
</asp:GridView>
protected void RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
// Use for loop for based all rows.
if(e.Row.Cells[i].Text == "EMPTY")
e.Row.Cells[i].BackColor = Color.Red;
}
}
Upvotes: 3
Reputation: 26396
You can use NullDisplayText="EMPTY"
NullDisplayText Attribute
<asp:BoundField DataField="transcode"
NullDisplayText="EMPTY"
HeaderText="header2"/>
If what is coming from your DB is not NULL
but an empty string, you will need to use template field
<asp:TemplateField HeaderText="header2">
<ItemTemplate>
<%# Eval("transcode").ToString() == "" ? "EMPTY" : Eval("transcode").ToString() %>
</ItemTemplate>
</asp:TemplateField>
Upvotes: 7
Reputation: 369
You just need to add :
NullDisplayText="Empty"
Like:
<asp:BoundField HeaderText="Order Code" DataField="ordercode" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" NullDisplayText="Empty" />
Upvotes: 2