2016-11-03 30 views
0

該ID在ItemTemplate之內,並且在代碼文件中找不到它。'用戶名'在它的當前上下文中不存在

<form id="form1" runat="server"> 
    <asp:SqlDataSource ID="searchresults" runat="server" 
         ConnectionString='<%$ ConnectionStrings:AgileDatabaseConnection %>' 
         SelectCommand=" SELECT [userID], [userName], [firstName],[lastName],[password], [email] FROM [Users] WHERE ([email] LIKE '%' + @email + '%')"> 
     <selectparameters> 
      <asp:querystringparameter querystringfield="searchquery" name="email" type="String"></asp:querystringparameter> 
     </selectparameters> 
    </asp:SqlDataSource> 

    <asp:ListView ID="displayitems" runat="server" DataSourceID="searchresults"> 
     <itemtemplate> 
      <asp:label runat="server" associatedcontrolid="projectOwner" cssclass="col-md-2 control-label">Project Owner:</asp:label> 
      <div class="col-md-10"> 
       <asp:TextBox runat="server" ID="ProjectOwner" CssClass="form-control" /><br /> 
       <asp:label runat="server" associatedcontrolid="projectOwner" cssclass="col-md-2 control-label">Scrum Master:</asp:label> 
       <div class="col-md-10"> 
        <asp:SqlDataSource ID="ScrumMaster" runat="server" ConnectionString='<%$ ConnectionStrings:AgileDatabaseConnection %>' SelectCommand="SELECT userName FROM [Users]"></asp:SqlDataSource> 
        <asp:dropdownlist runat="server" id="usertype" DataSourceID="ScrumMaster" DataTextField="userName"></asp:dropdownlist><br /> 
       </div> 
      </div> 

      <asp:label runat="server" cssclass="col-md-2 control-label">Email:</asp:label> 
      <asp:Label Text='<%#Eval("email") %>' runat="server" ID="emaillabel" /><br /> 
      <asp:label runat="server" cssclass="col-md-2 control-label">UserName:</asp:label> 
      <asp:Label Text='<%#Eval("userName") %>' runat="server" ID="username" /><br /> 

      <asp:label runat="server" cssclass="col-md-2 control-label">UserID:</asp:label> 
      <asp:Label runat="server" Text='<%#Eval("userID") %>' ID="UserID" CssClass="form-control" /> 
      <br /> 
      <div class="actions"></div> 

      <asp:Button Text="Add" runat="server" class="btn pull-right" ID="uploadbutton" OnClick="add_Click"></asp:Button> 
      </div> 
     </itemtemplate> 
    </asp:ListView> 
    <emptydatatemplate> 

     <span>No users match <asp:Label Text='' runat="server" ID="email" /> .</span> 

    </emptydatatemplate> 
</form> 

C#說它找不到'userName'。這是我的後端代碼:

string ownerName = ProjectOwner.Text; 
string IDuser = username.Text; 
string IDdata = Session["userID"].ToString(); 

如何獲取userName值?

+0

其他領域都得到很好的解決? – McNets

+0

ListView內有第二個SqlDataSource – McNets

+0

嗨,對不起,我沒有發佈projectowner也沒有解決。 –

回答

0

問題是ListView可能會返回多於一個項目,因此後面的代碼不知道itens控件(用戶名和ProjectOwner)是你在談論哪個。

如果你想要做的每個項目的同樣的事情,你可以這樣做:

protected void displayitems_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListViewItemType.DataItem) 
    { 
     string ownerName = ((TextBox)e.Item.FindControl("ProjectOwner")).Text; 
     string IDuser = ((Label)e.Item.FindControl("username").Text; 
     string IDdata = Session["userID"].ToString(); 
    } 
} 
+0

我們現在在FindControl下面發現錯誤 'System.Web.UI.WebControls.ListItemViewEventArgs'不包含FindControl的定義,也沒有擴展方法'FindControl'接受類型爲'System.Web.UI.WebControls'的第一個參數.ListItemViewEventArgs'可以找到 –

+0

你得到什麼錯誤? –

+0

System.Web.UI.WebControls.ListItemViewEventArgs'不包含FindControl的定義,並且沒有找到接受'System.Web.UI.WebControls.ListItemViewEventArgs'類型的第一個參數的擴展方法'FindControl' –

相關問題