首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FindControl问题

FindControl问题
EN

Stack Overflow用户
提问于 2011-07-24 16:01:15
回答 1查看 978关注 0票数 0

我有一个关于FindControl.I的问题,我正在中继器中使用ASPxRoundPanel(带有DXperience组件)。我在ASPxRoundPanel中有一个名为"txtAdet ID“的文本框。我只是不能在Textbox.And中访问,我得到了下面的错误。

代码语言:javascript
复制
"Object reference not set to an instance of an object." 

ascx。代码:

代码语言:javascript
复制
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="urunLinq"
    onitemcommand="Repeater1_ItemCommand">
<ItemTemplate>

    <dxrp:ASPxRoundPanel ID="ASPxRoundPanel1" runat="server" Width="980px" ShowHeader="true" Height="550px">
   <PanelCollection>
   <dxrp:PanelContent>
   <div style="width:980; overflow:hidden;height:350px;">
   <div style="float:left; width:410px;height:310px;">
    <asp:Image ID="Image1" Width="400" Height="300" ImageUrl='<%# "../urunResim/"+Eval("urunAnaResim") %>' runat="server" />
</div>
<div style="float:left;margin-top:0px;overflow:hidden;width:500px;">
<h2><%# Eval("urunAdi") %></h2>

<h4>Ürün Özellikleri</h4>
<p style="font-size:x-small;"><%# Eval("urunOzellikleri") %></p>
<br />
<table>
<tr>
<td><h5>Adet    </h5></td><td><asp:TextBox ID="txtAdet" Width="50" runat="server"></asp:TextBox></td>
<td><h4>        Peşin Fiyatı :</h4></td><td><h3 style="color:Red;">  <%# Eval("kdvliFiyat") %>TL</h3></td>
</tr>
</table>
<br />
<table>
<tr>
<td><a href="#">İnternet satış taksitlerini görmek için tıklayın.</a></td>
<td>                
<asp:ImageButton ID="ImageButton1" CommandName="sepeteKaydet" runat="server" ImageUrl="~/img/icons/sepeteEkle.JPG" /></td>
</tr>
</table>
</div></div>

   </dxrp:PanelContent>
   </PanelCollection>
   <HeaderTemplate>
   <h3><%# Eval("urunAdi") %></h3>
   </HeaderTemplate>
    </dxrp:ASPxRoundPanel>

</ItemTemplate>
</asp:Repeater> 

.cs代码:

代码语言:javascript
复制
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName=="sepeteKaydet")
            {
               TextBox bulunanTextKontrol = ((TextBox)e.Item.FindControl("txtAdet"));
               string urunAdet = bulunanTextKontrol.Text;
               string sessionId = Session.SessionID;
               int urunId=Convert.ToInt32(Request["id"].ToString());
               tempSepet geciciSepet = new tempSepet()
               {
                    adet = Convert.ToInt32(urunAdet),
                    eklemeSaati = Convert.ToString(DateTime.Now.Hour.ToString()),
                    eklemeTarihi = Convert.ToString(DateTime.Now.ToShortDateString()),
                    sessionId = sessionId,
                    urunId = urunId
               };
               selcukData.tempSepets.InsertOnSubmit(geciciSepet);
               selcukData.SubmitChanges();
               Response.Write("<script type='text/javascript'>alert('Ürün sepetinize başarıyla eklendi')</script>");
               ((TextBox)e.Item.FindControl("txtAdet")).Text = null;
            }
        } 

我在下面的代码行中遇到错误。

代码语言:javascript
复制
 string urunAdet = bulunanTextKontrol.Text;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-24 20:12:29

ASPxRoundPanel控件是实现INamingContainer接口的ASPxWebControl的一个子类。这意味着在任何父控件上调用的FindControl (在您的情况下是RepeaterItem)将无法在ASPxRoundPanel (解释为here)中找到任何内容。所以你至少需要两个步骤来完成你的任务:

代码语言:javascript
复制
ASPxRoundPanel1 roundPanel =  ((ASPxRoundPanel1)e.Item.FindControl("ASPxRoundPanel1"));
TextBox bulunanTextKontrol = ((TextBox)roundPanel.FindControl("txtAdet"));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6805637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档