阻止DataList为ClickEvents提供Refesh

时间:2016-03-17 11:53:35

标签: c# asp.net updatepanel datalist

我有一个DataList控件,HeaderTemplateLinkButton s。

标记为

 <asp:DataList runat="server" ID="dlYears"  OnItemDataBound="dlYears_ItemDataBound">
    <HeaderTemplate>
        <asp:LinkButton ID="lblYear1" runat="server" OnClick="Year_Click"></asp:LinkButton>
        <asp:LinkButton ID="lblYear2" runat="server" OnClick="Year_Click"></asp:LinkButton>
    </HeaderTemplate>
    <ItemTemplate>
       <asp:Label ID="lblValue" runat="server"Text='<%# String.Format("{0:f2}",DataBinder.Eval(((IDataItemContainer)Container).DataItem, "Value")) %>'></asp:Label>
     </ItemTemplate>
  </asp:DataList>

实际上,此数据列表的年份编号为Headers 2016, 2015

绑定为

 dlYearlys.DataSource = ds;
 dlYearlys.DataBind();

ItemDataBound上,我将总计的值设为

protected void dlYearlyTotals_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {
               int i = e.Item.ItemIndex;

            if (val != ((Label)e.Item.FindControl("lblValue")).Text)
                e.Item.ForeColor = System.Drawing.Color.Red;
        }
    }

点击标题我正在显示另一个数据列表值。

        protected void Year_Click(object sender, EventArgs e)
        {
            LinkButton btn = sender as LinkButton;
            BindAnotherDataList((Convert.ToInt16(btn.Text)));
        }

这会导致页面刷新,而我正在将颜色更改为red的年份值不再显示。

那么我怎样才能让dlYears Datalist控制不点击标题时刷新并保留颜色

页面加载

protected void Page_Load(object sender, EventArgs e)
  { 
      if (!IsPostBack)
      {
          BinddlYear();
          // Binding Some other controls
      }
  }

0 个答案:

没有答案