(CheckBoxList)FormView1.FindControl("AssetCollect");找不到指定的CheckBoxList控件。

sickcatzzzz 2009-05-18 10:24:12

<asp:FormView ID="FormView1" runat="server" DataSourceID="ObjectDataSource1" DefaultMode="Edit"
DataKeyNames="AssetID" Width="100%" OnItemUpdated="FormView1_ItemUpdated" OnItemInserted="FormView1_ItemInserted"
OnDataBound="FormView1_DataBound">
<InsertItemTemplate>
<table class="tableadd">
<tr>
<th colspan="2">
新增资产
</th>
</tr>
<tr>
<td class="tdbg1">
领用人
</td>
<td class="tdbg2">

<%-- <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="AssetCollect"
ErrorMessage="不能空"></asp:RequiredFieldValidator>--%>
<asp:CheckBoxList ID="AssetCollect" runat="server" CellPadding="2"
DataSourceID="chechBoxListObjectDataSource" DataTextField="UserName"
DataValueField="Admin_ID" RepeatDirection="Horizontal">
</asp:CheckBoxList>
</td>
</tr>
<tr>



protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
//FX_ClassTableAdapter
{
ViewState["admin_passprot"] = Request.RawUrl;
if (!AdminBLL.CheckBoolAdminPower(25)) //检测权限
{
this.FormView1.Enabled = false;
}

string m_Action = Request.QueryString["Action"]; //判断链接地址加载(FormView1)页面模板
if (m_Action == "Add")
{
FormView1.DefaultMode = FormViewMode.Insert;

}
if (m_Action == "Show")
{
FormView1.DefaultMode = FormViewMode.ReadOnly;

//listBanding();

CheckBoxList _AssetCollect = (CheckBoxList)FormView1.FindControl("AssetCollect");
_AssetCollect.Enabled = false;
CheckBoxList _AssetTransact = (CheckBoxList)FormView1.FindControl("AssetTransact");
_AssetTransact.Enabled = false;

}


}

}



我在A.aspx可以用的代码到了B.aspx就不行了,请高手指点。
...全文
123 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sickcatzzzz 2009-05-18
  • 打赏
  • 举报
回复
没错,问题出在数据源绑定不成功上。谢谢各位。
gciyfzx07 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ralpha08 的回复:]
没看到你在PageLoad的时候给FormView 绑定数据源的代码

CheckBoxList 是在FormView 的item里的, 你没绑定数据源 当然找不到CheckBoxList
而且FindControl在PageLoad的时候用也不对,应该在OnItemDataBound的时候去找
[/Quote]
UP
sickcatzzzz 2009-05-18
  • 打赏
  • 举报
回复
我在A.aspx可以用的代码到了B.aspx就不行了 代码都一样 怎么就不行了呢。。。
springbell 2009-05-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ralpha08 的回复:]
没看到你在PageLoad的时候给FormView 绑定数据源的代码

CheckBoxList 是在FormView 的item里的, 你没绑定数据源 当然找不到CheckBoxList
而且FindControl在PageLoad的时候用也不对,应该在OnItemDataBound的时候去找
[/Quote]

UP
zuoming120 2009-05-18
  • 打赏
  • 举报
回复
用foreach遍历找吧,
ralpha08 2009-05-18
  • 打赏
  • 举报
回复
没看到你在PageLoad的时候给FormView 绑定数据源的代码

CheckBoxList 是在FormView 的item里的, 你没绑定数据源 当然找不到CheckBoxList
而且FindControl在PageLoad的时候用也不对,应该在OnItemDataBound的时候去找
sickcatzzzz 2009-05-18
  • 打赏
  • 举报
回复
  <ItemTemplate>
<table class="tableadd">
<tr>
<th colspan="2">
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="Admin_Class.aspx"> 查看所有资产</asp:HyperLink>
</th>
</tr>
<tr>
<td class="tdbg1">
领用人
</td>
<td class="tdbg2">
<asp:CheckBoxList ID="AssetCollect" runat="server" CellPadding="2"
DataSourceID="chechBoxListObjectDataSource" DataTextField="UserName"
DataValueField="Admin_ID" RepeatDirection="Horizontal">
</asp:CheckBoxList>
</td>
</tr>


<ItemTemplate>项目中的<asp:CheckBoxList ID="AssetCollect" 找不到!。。。
Hertz_liu 2009-05-18
  • 打赏
  • 举报
回复
你如果不是在FormView的行绑定事件里去找的话,需要遍历一下,然后找出你想要的

如果是在行绑定事件里的话,它的e里头就己经指定了

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧