【问题标题】:'username' does not exist in it's current context“用户名”在当前上下文中不存在
【发布时间】:2016-11-04 01:16:31
【问题描述】:

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# 说它找不到“用户名”。这是我的后端代码:

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

如何获取userName值?

【问题讨论】:

  • 其他字段解析好了吗?
  • ListView里面还有第二个SqlDataSource
  • 您好,对不起,我没有发布项目所有者也没有解决的帖子。
  • 错误是关于 Text='',而不是关于 ID=username
  • 当前上下文中不存在名称“ProjectOwner”当前上下文中不存在名称“用户名”

标签: c# asp.net


【解决方案1】:

问题是ListView 可以返回多个项目,因此后面的代码不知道您在谈论哪个项目控件(用户名和 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();
    }
}

【讨论】:

  • 我们现在在 FindControl 'System.Web.UI.WebControls.ListItemViewEventArgs' 下遇到错误,它不包含 FindControl 的定义,并且没有扩展方法 'FindControl' 接受类型为“System.可以找到 Web.UI.WebControls.ListItemViewEventArgs'
  • System.Web.UI.WebControls.ListItemViewEventArgs' 不包含 FindControl 的定义,并且没有扩展方法 'FindControl' 接受类型为 'System.Web.UI.WebControls.ListItemViewEventArgs' 的第一个参数被发现
  • 抱歉,忘记添加一件事了。将编辑,只需几秒钟
  • 随时。很高兴我能帮上忙。
猜你喜欢
  • 2013-10-02
  • 2014-04-22
  • 2017-06-17
  • 2015-09-11
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 2014-05-05
相关资源
最近更新 更多