Edward Mergel Ответов: 2

Stop ASP:label from repeating


На своих страницах я использую<asp:label & gt; Для заполнения заголовка страницы. Это работает хорошо, но когда в моем сеточном представлении пользователь нажимает First-Previous-Next-Last, метка продолжает добавлять заголовок страницы снова и снова

ЭТИКЕТКА
&ЛТ;АСП:метка идентификатор="Метка2" атрибут runat="сервер" текст="вопросы, связанные с" CssClass="lblTitle"&ГТ;&ЛТ;/АСП:ярлык&ГТ;

На странице загрузки в качестве примера показано: вопрос связан со всеми вопросами

При нажатии на направление подкачки:
Первый клик возвращает: вопрос связан со всеми вопросами все вопросы
Второй щелчок возвращает: вопрос связан со всеми вопросами все вопросы все вопросы

Это происходит каждый раз, когда на него нажимают. Когда страница обновляется, она остается прежней. Единственный способ вернуться к тексту, который должен отображаться (вопрос связан со всеми вопросами), - это нажать на ссылку, которая загружает страницу.

Я думал, что это может быть связано с использованием IsPostBack, но это тоже не работает.

Что я уже пробовал:

mainForum.aspx-файл.ВБ
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Request.QueryString("cat") <> Nothing Then
            ForumDataSource.FilterExpression = "Category='" & Request.QueryString("cat") & "'"

            Label2.Text &= " " & Request.QueryString("cat")
        Else
            Label2.Text &= " All Questions"

        End If

        If Not IsPostBack Then
            ' Validate initially to force the asterisks
            ' to appear before the first roundtrip.
            Validate()
        End If

    End Sub


mainForum.aspx-файл
<asp:GridView ID="GridView1" runat="server" BorderWidth="0" Width="100%" AllowPaging="True" AllowSorting="True" PageIndex="4" PageSize="30" AutoGenerateColumns="False" DataKeyNames="QID" DataSourceID="ForumDataSource" EnableModelValidation="True">
      <RowStyle BackColor="#dde8ed" />
      <AlternatingRowStyle BackColor="#beced5" />
      <PagerSettings PageButtonCount="4" Mode="NextPreviousFirstLast" Position="TopAndBottom" FirstPageText="First " PreviousPageText=" Previous " NextPageText=" Next " LastPageText=" End"  />
      <PagerStyle HorizontalAlign="Center" VerticalAlign="Middle" BackColor="#233f5e" Font-Underline="false" ForeColor="#c7d1e0" Font-Names="Arial" Font-Size="9pt" Font-Bold="true" Width="100%" Height="22px" />
        <EmptyDataTemplate>
            Now Questions were found
        </EmptyDataTemplate>
      <FooterStyle CssClass="gridbg" />
      

        <Columns>
            <asp:HyperLinkField DataNavigateUrlFields="Category" DataNavigateUrlFormatString="mainForum.aspx?cat={0}" DataTextField="Category" HeaderText="Category" NavigateUrl="mainForum.aspx?cat=" SortExpression="Category" Text="Category" >
            <HeaderStyle BackColor="#5B6776" Font-Names="Arial" Font-Size="9pt" ForeColor="#C7DEE9" HorizontalAlign="Center" VerticalAlign="Middle" Width="17%" />
            <ItemStyle Font-Names="Arial" Font-Size="8pt" ForeColor="#022638" HorizontalAlign="Left" VerticalAlign="Middle" Width="17%" Height="20px" CssClass="ingrid" />
            </asp:HyperLinkField>
            <asp:HyperLinkField DataNavigateUrlFields="QID" DataNavigateUrlFormatString="AnswerList.aspx?qid={0}" DataTextField="Question" HeaderText="Question(s) Asked" NavigateUrl="AnswerList.aspx?qid=" SortExpression="Question" Text="Question" >
            <HeaderStyle BackColor="#5B6776" Font-Names="Arial" Font-Size="9pt" ForeColor="#C7DEE9" HorizontalAlign="Center" VerticalAlign="Middle" Width="56%" />
              <ItemStyle Font-Names="Arial" Font-Size="8pt" ForeColor="#022638" HorizontalAlign="Left" VerticalAlign="Middle" Width="56%" Height="20px" CssClass="ingrid" />
            </asp:HyperLinkField>
            <asp:HyperLinkField DataNavigateUrlFields="PostedBy" DataNavigateUrlFormatString="Profile.aspx?mem={0}" DataTextField="PostedBy" HeaderText="Posted By" NavigateUrl="Profile.aspx?mem=" SortExpression="PostedBy">
            <HeaderStyle BackColor="#5B6776" Font-Names="Arial" Font-Size="9pt" ForeColor="#C7DEE9" HorizontalAlign="Center" VerticalAlign="Middle" Width="17%" />
              <ItemStyle Font-Names="Arial" Font-Size="8pt" ForeColor="#022638" HorizontalAlign="Left" VerticalAlign="Middle" Width="15%" Height="20px" CssClass="ingrid" />
            </asp:HyperLinkField>
            <asp:BoundField DataField="PostedDate" HeaderText="Post Date" DataFormatString="{0}" SortExpression="PostedDate" >
              <HeaderStyle BackColor="#5B6776" Font-Names="Arial" Font-Size="9pt" ForeColor="#C7DEE9" HorizontalAlign="Center" VerticalAlign="Middle" Width="12%" />
              <ItemStyle Font-Names="Arial" Font-Size="8pt" ForeColor="#022638" HorizontalAlign="Center" VerticalAlign="Middle" Width="12%" Height="20px" />
            </asp:BoundField>
        </Columns>
    </asp:GridView>

2 Ответов

Рейтинг:
4

Graeme_Grant

Изменить это:

Label2.Text &= " All Questions"

До настоящего времени:
If Not String.IsNullOrEmpty(Label2.Text) And Label2.Text <> "All Questions" Then 
    Label2.Text &= " All Questions"
Else
    Label2.Text = "All Questions"
End If


Edward Mergel

Спасибо теперь работает отлично

Рейтинг:
16

DotNetSteve

Вы находитесь на правильном пути относительно IsPostBack.
Вам нужно назначить свою метку в этом блоке, тогда она будет вызываться только по запросу Get (ссылка, которую вы упомянули)

If Not IsPostBack Then

	' Validate initially to force the asterisks
	' to appear before the first roundtrip.

	Label2.Text &= " " & Request.QueryString("cat")
	' OR
	Label2.Text &= " All Questions"

	Validate()

End If