2016-05-30 89 views
0

正如标题中所写,我试图从DetailsView中获取文本框值。但是,textbox值不在DetailsView中的绑定数据的内容中,因此当我尝试使用OnCommand方法获取文本时,出现HttpContext错误。其次,我无法使用其ID来获取值,可能是因为它在DetailsView中。最后,当我将DetailsBox的文本框和按钮放在DetailsView外部时,我得到了该值,但如果在DetailsView中没有要显示的数据,则不应显示按钮和文本。ASP.NET单击按钮时从DetailsView中获取文本框值;该文本框数据独立于绑定数据

这是我的DetailsView控件代码:

<asp:DetailsView ID="dvÜrün" runat="server" GridLines="None" CssClass="table table-borderless" AutoGenerateRows="false" OnCommand="dvÜrün_ItemCommand"> 

    <Fields> 
     <asp:TemplateField Visible="false"> 
      <ItemTemplate> 
       <%#Eval("ÜrünID") %> TL          
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="ÜrünAdı" HeaderText="Adı" /> 
     <asp:BoundField DataField="ÜrünKategori" HeaderText="Kategori" /> 
     <asp:BoundField DataField="ÜrünAçıklama" HeaderText="Açıklama" /> 
     <asp:TemplateField HeaderText="Ücret"> 
      <ItemTemplate> 
       <%#Eval("ÜrünÜcret") %> TL          
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField>     
      <ItemTemplate> 
       Adet: 
       <asp:textbox ID="Adet" runat="server" CssClass="text-center" textmode="SingleLine" type="number" min="1" max="20" Text="1"/> 
       <asp:Button CssClass="pull-right btn btn-success" Text="Sepete Ekle" runat="server" OnClick="sepeteEkle_Click"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Fields> 
</asp:DetailsView> 

回答

0

张贴在此之后,我立刻找到了答案。这是我的CS代码:

public void dvÜrün_ItemCommand(object sender, DetailsViewCommandEventArgs e) 
    { 
     if (e.CommandName == "ürünEkle") 
     { 
      string adet = ((TextBox)dvÜrün.FindControl("Adet")).Text; 

     } 
    } 

这是DetailsView控件代码:

<asp:DetailsView ID="dvÜrün" runat="server" GridLines="None" CssClass="table table-borderless" AutoGenerateRows="false" OnItemCommand="dvÜrün_ItemCommand"> 

    <Fields> 
     <asp:TemplateField Visible="false"> 
      <ItemTemplate> 
       <%#Eval("ÜrünID") %> TL          
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:BoundField DataField="ÜrünAdı" HeaderText="Adı" /> 
     <asp:BoundField DataField="ÜrünKategori" HeaderText="Kategori" /> 
     <asp:BoundField DataField="ÜrünAçıklama" HeaderText="Açıklama" /> 
     <asp:TemplateField HeaderText="Ücret"> 
      <ItemTemplate> 
       <%#Eval("ÜrünÜcret") %> TL          
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField>     
      <ItemTemplate> 
       Adet: 
       <asp:textbox id="Adet" runat="server" CssClass="text-center" textmode="SingleLine" type="number" min="1" max="20" Text="1"/> 
       <asp:Button CssClass="pull-right btn btn-success" Text="Sepete Ekle" runat="server" CommandName="ürünEkle"/> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Fields> 
</asp:DetailsView>