0

我有以下 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

4 回答 4

0

文本输入部分是:

<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">
于 2009-10-22T15:02:15.810 回答
0

您在哪里要求用户输入电子邮件地址?您可以删除空数据文本并使用空数据模板。

<EmptyDataTemplate>
   <table border="1px" cellpadding="1px" cellspacing="1" width='100%'>
            <tr><td>...   </td> </tr>
   </table>
</EmptyDataTemplate>
于 2009-10-22T14:46:08.007 回答
0

如果你有

当您从浏览器查看源代码时,您会得到

<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。

于 2009-10-22T16:56:26.917 回答
0

这样做,您可以选择 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> 
于 2016-02-09T11:36:08.627 回答