2010-04-01 72 views
0

当我试图找到控制n个数据列表,我下面提到查找控制在Datalist中

Error(Object reference not set to an instance of an object. 

我不知道

protected void dlCategory_ItemDataBound(object sender, DataListItemEventArgs e) 
    { 
     Label Lb = (Label)e.Item.FindControl("LblCat"); 
     Lb.ForeColor = System.Drawing.Color.Red; 
    } 



<Datalist> 
<asp:DataList ID="dlSubCategory" runat="server" 
            DataSource='<%# GetSubCategory(Convert.ToString(Eval("Category_ID")))%>' 
            onitemcreated="dlSubCategory_ItemCreated" 
            onitemdatabound="dlSubCategory_ItemDataBound"> 
            <EditItemStyle ForeColor="#CC3300" /> 
            <SelectedItemStyle ForeColor="#CC3300" /> 
            <ItemTemplate> 
             <div class="buttn_div_sub"> 
              <div class="lm40 tm2 buttn_txt"> 
               <a href='<%# Convert.ToString(Eval("ProductCategory_Id")).Insert(0,"ListView.aspx?ProductCategory_Id=") %>' 
                class="buttn_txt"> 
                <asp:Label ID="Label1" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"Name") %>'></asp:Label> 
               </a> 
              </div> 
             </div> 
            </ItemTemplate> 
           </asp:DataList> 
          </ItemTemplate> 
+0

@Kareem:请格式化你的代码。 http://meta.stackexchange.com/questions/22186/how-do-i-get-my-code-formatted-in-stackoverflow – 2010-04-01 12:23:47

回答

3
protected void dlCategory_ItemDataBound(object sender, DataListItemEventArgs e) 
{ 
    Label Label1 = e.Item.FindControl("Label1") as Label; 
    if (LblCat != null) 
    { 
     string id = ((System.Data.DataRowView)e.Item.DataItem).Row["ProductCategory_Id"].ToString(); 

     if (Request.QueryString["ProductCategory_Id"] == id) 
     { 
      Label1.ForeColor = System.Drawing.Color.Red; 
     } 
    } 
} 
+0

谢谢 但我想要的项目,我将用鼠标 选择,这意味着我现在在这里这里 – Myworld 2010-04-01 13:48:09

+0

已更新我的答案 – hunter 2010-04-01 16:26:54

0

你能试试吗?传递给这个函数的第一项是头(如果存在于datalist上),这就是为什么你会得到错误。

protected void dlCategory_ItemDataBound(object sender, DataListItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     Label Lb = (Label)e.Item.FindControl("LblCat"); Lb.ForeColor = System.Drawing.Color.Red; 
    } 
} 
+0

谢谢你,它运作良好 我想给它被选择的项目的颜色菜单没有你可以看到的所有项目 http://beta.elarabygroup.com/Default.aspx – Myworld 2010-04-01 13:11:36