【问题标题】:Not getting value When trying to get value from a TetBox inside a User Control未获得价值尝试从用户控件内的文本框获取价值时
【发布时间】:2015-01-22 11:44:51
【问题描述】:

我创建了一个 UserControl(带有 2 个文本框和 1 个标签)我在 ListView 中有这个 UserControl。我有一个提交按钮,它曾经是触发器,我想为列表视图的每一行读取(2 个文本框和 1 个标签)的值。我有下面的代码,但是当我尝试读取 TextBoxes 中的内容时,它没有显示任何值。在用户控件中获取服务器控件的正确方法是什么?

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(在绑定到 xml 文件的 LIstView 上使用我的 UserControl 创建 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

【问题讨论】:

    标签: asp.net vb.net listview user-controls


    【解决方案1】:

    您是否在检查是否发生了回发?听起来您可能不是,并且列表视图在每次单击按钮时都会重新绑定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多