前台:
<asp:DataList ID="DataList1" runat="server" Width="97%">
........
........
<FooterTemplate>
<table width="100%" border="0" align="center" cellpadding="3" cellspacing="1" class="tableborder">
<tr bgcolor="#ffffff">
<td height="25" colspan="7">
<div align="right">
<asp:DropDownList ID="drpReceiver" runat="server"></asp:DropDownList>
</div>
</td>
</tr>
</table>
</FooterTemplate>
</asp:DataList>我在后台判断,在某种情况下,不允许drpReceiver显示出来,但我写this.drpReceiver.Visible,会报错

解决方案 »

  1.   

    foreach(DataListItem   item   in   DataList1.Items)   
              {   
                      DropDownList dll =   (DropDownList)e.Item.FindControl("drpReceiver");   
                      dll.Visible = false;
              }   
      

  2.   

    可能是没有找到该控件。你这样找试试
     protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
            {
                if (e.Item.ItemType == ListItemType.Footer)
                {
                  DropDownList DropDownList1=  (DropDownList)e.Item.FindControl("drpReceiver");
                }
            }
      

  3.   

    这是对的,但是我又要在另一个地方接收DropDownList的值,那应该怎么做呢?
      

  4.   

    把值在这里面取到:
    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
      {
      if (e.Item.ItemType == ListItemType.Footer)
      {
      DropDownList DropDownList1= (DropDownList)e.Item.FindControl("drpReceiver");
      string values=DropDownList1.selectvalue;
      把值存到viewstate里面或者存到cookiee里面。直接调。
      }
      }
      

  5.   


    声明个变量 吧DropDownList.SelectedItem.text传过去不行?