필드가 비어 있거나 공백이있는 경우 내 gridview itemtemplate 내에서 사용한 tr 및 td를 숨기고 싶습니다.
이것은 내 gridview 마크 업입니다.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" EnableModelValidation="True" ForeColor="#333333"
GridLines="Horizontal" Width="1000px" onrowcreated="GridView1_RowCreated" DataKeyNames="id">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField HeaderText="Directory">
<ItemTemplate>
<table width="1000px">
<tr><td colspan="4"> </td></tr>
</table>
<table width="1000px">
<tr class="border_bottom"><td align="center" colspan="4" style="color: #5D7B9D;"><strong><%# HighlightText(Eval("name").ToString()) %></strong></td></tr>
<tr class="border_bottom" style='<%#Eval("contact_person") == ""? "display:none": "display:block"%>'><td align="center" colspan="4" style="color:Black"><%#Eval("contact_person")%></td></tr>
<tr style="width:1000px;"><td colspan="2"> </td></tr>
<tr><td style="width:auto;">Address: <%#Eval("address")%></td><td style="width:auto;">Country: <%# HighlightText(Eval("country").ToString())%></td><td style='<%#Eval("city") == ""? "display:none": "display:block"%>'>City: <%# HighlightText(Eval("city").ToString())%></td><td style='<%#Eval("zip") == ""? "display:none":"display:block" %>'>Zip: <%#Eval("zip")%></td></tr>
<tr><td style="width:auto;">Phone: <%#Eval("phone")%></td><td style='<%#Eval("mobile") == ""? "display:none": "display:block"%>'>Mobile: <%#Eval("mobile")%></td><td style="width:auto;">Fax: <%#Eval("fax")%></td><td style="width:auto;color: #0000FF;"><p style='<%# string.IsNullOrWhiteSpace(Eval("email").ToString().Trim())? "display:none": "display:block"%>'><span style="color:Black;">Email:</span> <%#Eval("email")%></p><br /><asp:LinkButton ID="LinkButton2" runat="server" onclick="LinkButton2_Click"
Text='<%# Eval("website") %>' ForeColor="#DD0303"></asp:LinkButton></td></tr>
<tr><td style="width:auto;color:Black;">Product Category: <%# HighlightText(Eval("product_category").ToString())%></td><td style="width:auto;color:Black;">Activity: <%# HighlightText(Eval("activity").ToString())%></td><td colspan="2" style="width:auto;color:Black;">Description: <%#Eval("Description")%></td></tr>
</table>
<table width="1000px">
<tr><td colspan="4"> </td></tr>
</table>
</ItemTemplate>
<HeaderStyle Font-Bold="True" Font-Size="X-Large" />
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>
그리고 나는이 클래스를 통해 내 gridview를 바인딩하고 있습니다.
public void bind()
{
try
{
tot_record = g1.retrieve_val("select count(*) from tblDirectory where id is not null " + Session["Country"] + Session["Product"] + Session["Activity"] + Session["Name"] + "");
dt = g1.return_dt("select * from tblDirectory where id is not null " + Session["Country"] + Session["Product"] + Session["Activity"] + Session["Name"] + Session["Check"] + " order by name");
if (dt.Rows.Count > 0)
{
adsource = new PagedDataSource();
adsource.DataSource = dt.DefaultView;
adsource.PageSize = 10;
adsource.AllowPaging = true;
adsource.CurrentPageIndex = pos;
btnfirst.Enabled = !adsource.IsFirstPage;
btnprevious.Enabled = !adsource.IsFirstPage;
btnlast.Enabled = !adsource.IsLastPage;
btnnext.Enabled = !adsource.IsLastPage;
GridView1.DataSource = adsource;
GridView1.DataBind();
s = Convert.ToInt32(this.ViewState["vs"].ToString());
}
else
{
GridView1.DataSource = null;
GridView1.DataBind();
}
}
catch (Exception ex)
{
ex.ToString();
}
}
사용할 때 <tr style='<%#Eval("contact_person") == ""? "display:none": "display:block"%>'><td align="center" colspan="4" style="color:Black"><%#Eval("contact_person")%></td></tr>
tr을 숨길 수는 있지만 데이터베이스에 공백이있는 일부 데이터에서는 숨기지 않습니다. 이메일에서도 IsNullOrWhitespace ()를 사용했지만 작동하지 않습니다. 그것은 나에게 일반적인 오류를주고 있습니다.
레코드에 비어 있거나 공백이있는 경우 이메일을 숨기려면 어떻게해야하나요? 내 코드에 어떤 종류의 구문 오류가 있나요?
아래에 언급 된대로 동적으로 Contact_Person 'tr'에 대해 display : none 스타일 을 적용 합니다.
<tr class="border_bottom" style='<%#Eval("contact_person") == ""? "display:none": "display:block"%>'>
<td align="center" colspan="4" style="color: Black"><%#Eval("contact_person")%></td>
</tr>
업데이트 :
이메일에 대해 동일한 작업을 수행하려면 아래에 언급 된대로 사용할 수 있습니다.
<tr>
<td style="width: auto;">Phone: <%#Eval("phone")%></td>
<td style="width: auto;">Mobile: <%#Eval("mobile")%></td>
<td style="width: auto;">Fax: <%#Eval("fax")%></td>
<td style="width: auto; color: #0000FF;">
<p style='<%# string.IsNullOrWhiteSpace(Eval("email").ToString().Trim())? "display:none": "display:block"%>'>
<span style="color: Black;">Email:</span> <%#Eval("email")%>
</p>
<br />
<asp:LinkButton ID="LinkButton2" runat="server" OnClick="LinkButton2_Click"
Text='<%# Eval("website") %>' ForeColor="#DD0303"></asp:LinkButton>
</td>
</tr>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다