2014-11-24 1 views
1

Я создал UserControl (с 2 текстовыми полями и 1 меткой) У меня этот UserControl внутри ListView. У меня есть кнопка отправки, которая когда-то запускается. Я хочу прочитать значения (2 текстовых поля и 1 метки). Для каждой строки списка. У меня есть код ниже, но он не показывает мне никаких значений, когда я пытаюсь прочитать то, что находится внутри TextBoxes. Каков правильный способ получения элементов управления сервером внутри пользовательского элемента управления?Не получать значение При попытке получить значение из TetBox внутри пользовательского элемента управления

SpecificExperienceControl.ascx

<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="SpecificExperienceControl.ascx.vb" Inherits="TardyAbsenteeReport.SpecificExperienceControl" %> 
<asp:HiddenField ID="hdnID" runat="server" /> 
<div class="SpecExp"> 
<tr> 
    <td> 
    <asp:TextBox ID="TextBox1" runat="server" CssClass="SpecExp-txtEmpID" ></asp:TextBox> 
    </td> 
    <td> 
    <asp:Label ID="Label1" runat="server" Text="Label" CssClass="SpecExp-txtLbl"></asp:Label> 
    </td> 
    <td> 
    <asp:TextBox ID="TextBox2" runat="server" CssClass="SpecExp-txtAcode"></asp:TextBox> 
</td> 
</tr> 
</div> 

SpecificExperience.aspx (Использовать мой UserControl на ListView То есть связанное приложение в файл XML, чтобы создать 25 строк пустой данные

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Master" CodeBehind="SpecificExperience.aspx.vb" Inherits="TardyAbsenteeReport.SpecificExperience" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server"> 
<script src="http://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js"></script> 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
<asp:ListView ID="ListView1" runat="server"> 
<LayoutTemplate> 
    <table cellpadding="2" width="640px" border="1" runat="server" id="tblProducts"> 
     <tr id="Tr1" runat="server"> 
      <th id="Th1" runat="server">EmployeeID</th> 
      <th id="Th2" runat="server">Name</th> 
      <th id="Th3" runat="server">Absentee Code</th> 
     </tr> 
     <tr runat="server" id="itemPlaceholder" /> 
</table>   

</LayoutTemplate>      
<ItemTemplate> 
    <hr:SpecExp ID="SpecExp1" runat="server"></hr:SpecExp>  
</ItemTemplate> 
</asp:ListView> 
<div> 
    <asp:Button ID="Button1" runat="server" Text="Submit" /> 
</div> 
</asp:Content> 

SpecificExperience.aspx.vb (код для считывания данных с элементов управления сервера внутри пользовательского элемента управления

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    Dim lview As ListViewItem 

    For Each lview In ListView1.Items 

     Dim LblEmployeeName As Label = lview.FindControl("SpecExp1$Label1") 
     Dim TxtEmployeeID As TextBox = lview.FindControl("SpecExp1$TextBox1") 
     Dim TxtAbsenteeCode As TextBox = lview.FindControl("SpecExp1$TextBox2") 

     Dim StrEmployeeId As String = TxtEmployeeID.Text 
     Dim StrLblemployee As String = LblEmployeeName.Text 
     Dim StrAbsentee As String = TxtAbsenteeCode.Text 

    Next 
End Sub 

ответ

0

Вы проверяете, произошла ли обратная связь? Это звучит так, будто, может быть, вы этого не сделали, и список открывается только при каждом нажатии кнопки.

+0

Спасибо, что были правы! – CodeEngine