if(Convert.ToString(Session["admin"])!= "")
{
imgedit.Visible=true;
imgquote.Visible=true;
}
如果Session["admin"]为空时,页面很正常,当登录以后session不为空时,提示这里出错:
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.Source Error: 
Line 38:  if(Convert.ToString(Session["admin"])!= "")
Line 39:  {
Line 40:  imgedit.Visible=true;
Line 41:  imgquote.Visible=true;
Line 42:  }
怎么处理啊?

解决方案 »

  1.   

    错误的行数为40行
    验证登录的
    private void Button1_Click(object sender, System.EventArgs e)
    {
    string strname,strpwd;
    strname = txtusername.Text;
    strpwd=txtpwd.Text;
    if((strname==ConfigurationSettings.AppSettings["uid"])&&(strpwd==ConfigurationSettings.AppSettings["pwd"]))
    {
      Session["admin"] = strname;
    Response.Redirect("default.aspx");
    } }
      

  2.   

    看不出来这个imgedit有什么问题,是动态生成的吗?
      

  3.   

    不是动态生成的。放到datalist控件中的
    <ItemTemplate>
    ---------
    <td>asp:image imageurl="images/edit.gif" id="imgedit" runat="server" visible=False />&nbsp;<asp:image imageurl="images/quote.gif" id="imgquote" runat="server" visible="False" />
    -----
    </ItemTemplate>
      

  4.   

    哦,这样的,那么你必须在DataList的ItemDataBound里面来获取这个控件DataList_ItemDataBound......
    {
      if(e.Item.ItemIndex > -1)
      {
          System.Web.UI.WebControls.Image img = (System.Web.UI.WebControls.Image)e.Item.FindControl("imgedit");
        if(img != null)
        {
              if(Convert.ToString(Session["admin"])!= "")
    {
    imgedit.Visible=true;
    }    }
      }
    }
      

  5.   

    这样的嵌入到list/grid里面的控件,不能直接使用,必须要在itemdatabound之类的事件里面通过FindControl来找到,然后再使用
      

  6.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //输入框
    if(e.Item.ItemType==ListItemType.EditItem)
    {
    TextBox txt1 = (TextBox)e.Item.Cells[0].Controls[0];
    txt1.Width = 50;
    txt1.Font.Size=9;
    TextBox txt2 = (TextBox)e.Item.Cells[1].Controls[0];
    txt2.Width = 250;
    txt2.Font.Size=9;
    TextBox txt3 = (TextBox)e.Item.Cells[2].Controls[0];
    txt3.Width = 120;
    txt3.Font.Size=9; //上传,取消按钮
    Button btn1 = (Button)e.Item.Cells[3].Controls[0]; 
    btn1.CssClass = "button";
    Button btn2 = (Button)e.Item.Cells[3].Controls[2]; 
    btn2.CssClass = "button";

    }  //编辑按钮
    else if (e.Item.ItemIndex >= 0)
    {
    Button btnEdit = (Button)e.Item.Cells[3].Controls[0];
    btnEdit.CssClass = "button";
    }
     
    //删除确认
    switch(e.Item.ItemType)
    {
    case ListItemType.Item:
    case ListItemType.AlternatingItem:
    case ListItemType.EditItem:
    {
    Button btn = (Button)e.Item.FindControl("btnDelete");
    btn.Attributes.Add("onclick", "return confirm('是否确定删除这条记录?');");
    break;
    }
    }
    }