Тег «EmptyDataText» в GridView хочет отображаться, только если данные не найдены - PullRequest
0 голосов
/ 22 октября 2009

У меня есть следующий Gridview (который работает) и тег 'EmptyDataText', который должен отображать сообщение на экране, если данные не могут быть найдены в базе данных после нажатия кнопки отправки. Проблема в том, что сообщение «данные не найдены» отображается на странице в момент открытия страницы, но я хочу, чтобы сообщение появлялось только в том случае, если пользователь вводит адрес электронной почты, который не может быть найден в БД. Надеюсь, я все правильно объяснил, я не могу сформулировать эту проблему лучше, пожалуйста, помогите!

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
                DataSourceID="SqlDataSource" EmptyDataText="The data could not be found" CellSpacing="3" CellPadding="4"
                GridLines="None" ForeColor="#333333">
                <Columns>
                    <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True"
                        SortExpression="ID">
                        <ItemStyle Font-Names="Verdana" Font-Size="9pt" />
                        <HeaderStyle Font-Names="Verdana" Font-Size="10pt" />
                    </asp:BoundField>
                    <asp:BoundField DataField="name" HeaderText="Name" SortExpression="name">
                        <ItemStyle Font-Names="Verdana" Font-Size="9pt" />
                        <HeaderStyle Font-Names="Verdana" Font-Size="10pt" />
                    </asp:BoundField>
                    <asp:BoundField DataField="EmailAddress" HeaderText="Email Address" SortExpression="EmailAddress">
                        <ItemStyle Font-Names="Verdana" Font-Size="9pt" />
                        <HeaderStyle Font-Names="Verdana" Font-Size="10pt" />
                    </asp:BoundField>
                    <asp:BoundField DataField="Address1" HeaderText="Address1" SortExpression="Address1">
                        <ItemStyle Font-Names="Verdana" Font-Size="9pt" />
                        <HeaderStyle Font-Names="Verdana" Font-Size="10pt" />
                    </asp:BoundField>
                    <asp:BoundField DataField="Address2" HeaderText="Address2" SortExpression="Address2">
                        <ItemStyle Font-Names="Verdana" Font-Size="9pt" />
                        <HeaderStyle Font-Names="Verdana" Font-Size="10pt" />
                    </asp:BoundField>
                    <asp:BoundField DataField="city" HeaderText="City" SortExpression="city">
                        <ItemStyle Font-Names="Verdana" Font-Size="9pt" />
                        <HeaderStyle Font-Names="Verdana" Font-Size="10pt" />
                    </asp:BoundField>
                    <asp:BoundField DataField="PostCode" HeaderText="Post Code" SortExpression="PostCode">
                        <ItemStyle Font-Names="Verdana" Font-Size="9pt" />
                        <HeaderStyle Font-Names="Verdana" Font-Size="10pt" />
                    </asp:BoundField>
                </Columns>

                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                <FooterStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="True" />
                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                <EditRowStyle BackColor="#999999" />
            </asp:GridView>

Это может быть что-то довольно простое, возможно, какое-то отношение к тому, как обновляется страница? Или это может быть довольно сложно ... Я просто не хочу, чтобы сообщение отображалось на экране, даже если пользователь не вводил какую-либо информацию.

Спасибо.


Я хочу выровнять по центру (в виде сетки) тег EmptyDataText = "no info", а не по умолчанию слева от страницы.

Ответы [ 4 ]

0 голосов
/ 09 февраля 2016

сделать так, вы можете выбрать CSS l, чтобы установить текст в центре ...

<EmptyDataTemplate>
             <asp:Label ID="Label1" runat="server" Text="No Data Found" 
   Font-Bold="True" Font-Size="X-Large" ForeColor="#FF0066" 
                       style="position:absolute;left:400px"></asp:Label>
</EmptyDataTemplate> 
0 голосов
/ 22 октября 2009

Часть для ввода текста:

<form id="form1" runat="server">
        <div>
            <div style="margin-bottom: 15px">
                <strong><span style="font-family: Verdana"><span style="font-size: 10pt">Enter email
                    address:</span></span></strong></div>
            <div style="margin-bottom: 15px">
                <asp:TextBox ID="txtBox" runat="server" Width="210px" TabIndex="1" MaxLength="50"></asp:TextBox></div>
            <asp:Button ID="btn" runat="server" Text="Submit" OnClick="btn_Click" Width="93px" />
            <div style="margin-top: 15px">
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtBox"
                    Text="Please enter a valid email address" runat="server" Font-Bold="False" Font-Names="Verdana"
                    Font-Size="10pt" />
            </div>
            <div style="margin-top: 30px; margin-bottom: 15px">
            </div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
                DataSourceID="SqlDataSource" EmptyDataText="wrong data" CellSpacing="3" CellPadding="4"
                GridLines="None" ForeColor="#333333">
0 голосов
/ 22 октября 2009

если у вас есть

при просмотре источника из браузера вы получите

<div>
    <table cellspacing="0" rules="all" border="1" id="GridView1" style="border-collapse:collapse;">
        <tr class="mytextcenter">
            <td>The data could not be found</td>
        </tr>
    </table>
</div>

Вы можете легко определить, какой CSS вам нужно указать.

0 голосов
/ 22 октября 2009

Где вы просите пользователя ввести адрес электронной почты? Вы можете удалить emptydatatext и использовать emptyDatatemplate.

<EmptyDataTemplate>
   <table border="1px" cellpadding="1px" cellspacing="1" width='100%'>
            <tr><td>...   </td> </tr>
   </table>
</EmptyDataTemplate>
...