首先我想说的是我在问之前以找过我们CSDN的一些类似问题,但没有解决我程序的问题,所以高分提问!
问题是这样的,我想让程序判断用户的权限,来决定DataGrid的自定义按扭是否可见,可无论怎么改都提示:未将对象引用设置到对象的实例。 protected void DataGrid_Load(object sender, EventArgs e)
{
this.DataGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.OnItemDataBound); }
private void OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (Convert.ToString(Session["权限"]) == CommonConst.user)
{
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Edit")).Visible = false;
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Delete")).Visible = false;
}
}
问题是这样的,我想让程序判断用户的权限,来决定DataGrid的自定义按扭是否可见,可无论怎么改都提示:未将对象引用设置到对象的实例。 protected void DataGrid_Load(object sender, EventArgs e)
{
this.DataGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.OnItemDataBound); }
private void OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (Convert.ToString(Session["权限"]) == CommonConst.user)
{
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Edit")).Visible = false;
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Delete")).Visible = false;
}
}
{
if (Convert.ToString(Session["权限"]) == CommonConst.user)
{
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Edit")).Visible = false;
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Delete")).Visible = false;
}
}
if( b != null )
b.Visible = false;
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Edit")).Visible = false;
if( b != null )
b.Visible = false;
为什么b总是NULL
看一下你控件的名字,另外你的控件是在Grid里面的模板列里面么?
<asp:Table runat="server" ID="Table1" Width="220">
<asp:TableRow>
<asp:TableCell Wrap="true" HorizontalAlign="center">
<asp:Button ID="Btn_Edit" runat="server" Text="编辑" CommandName ="编辑" Font-Size="10px" Height="17" />
<asp:Button ID="Btn_Particular" runat="server" Text="详细" CommandName ="详细" Font-Size="10px" Height="17" />
<asp:Button ID="Btn_Delete" runat="server" Text="删除" CommandName ="删除" Font-Size="10px" Height="17" />
<asp:Button ID="Btn_Circulate" runat="server" Text="流通" CommandName ="流通" Font-Size="10px" Height="17" />
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</asp:TableCell>
{
if (Convert.ToString(Session["权限"]) == CommonConst.user)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Edit")).Visible = false;
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Delete")).Visible = false;
}
}
}
protected void DataGrid_Load(object sender, EventArgs e)
{
this.DataGrid.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.OnItemDataBound); }
private void OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (Convert.ToString(Session["权限"]) == CommonConst.user)
{
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Edit")).Visible = false;
((System.Web.UI.WebControls.Button)e.Item.FindControl("Btn_Delete")).Visible = false;
}
}
++++++++++++++++++
呵呵,我想这个不是你写的代码的问题吧,你看一下窗体设计器生成的代码中有没有定义你所用到控件的