2016-08-16 56 views
0

我有以下几点:HiddenField不能在CS呼叫使用

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ctlChatBox.ascx.cs" Inherits="SignalRPrivateChat.controls.ctlChatBox" %> 
<div id="chat_widnow"> 
    <div id="chat_title_bar"> <span class="col-sm-9 text-primary"><strong>Online Users</strong></span> 
     <div id="chat_min_button"><i class="fa fa-plus-square"></i></div> 
    </div> 
    <div id="chat_box" style="display: none;overflow-y:auto;"> 
    </div> 
</div> 
<div id="chat_div"></div> 
<input id="hdId" type="hidden" /> 
<input id="hdUserName" type="hidden" /> 
<asp:HiddenField ID="hdnCurrentUserName" runat="server" /> 
<asp:HiddenField ID="hdnCurrentUserID" runat="server" /> 
<script src="<%=Page.ResolveUrl("~") %>Scripts/jquery.signalR-2.2.0.min.js"></script> 
<!--Reference the autogenerated SignalR hub script. --> 
<script src="<%=Page.ResolveUrl("~") %>signalr/hubs"></script> 
<link href="<%=Page.ResolveUrl("~") %>styles/jquery.ui.chatbox.css" rel="stylesheet" /> 
<script src="<%=Page.ResolveUrl("~") %>scripts/jquery.ui.chatbox.js"></script> 
<script src="<%=Page.ResolveUrl("~") %>scripts/chatboxManager.min.js"></script> 

其中hdnCurrentUserNamehdnCurrentUserIDHiddenField S,但是当我在这里给他们打电话:

public partial class ctlChatBox : System.Web.UI.UserControl 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      if (Session["UserName"] != null && Session["UserId"] != null) 
      { 
       hdnCurrentUserName.Value = Session["UserName"].ToString(); 
       hdnCurrentUserID.Value = Session["UserId"].ToString(); 
      } 
     } 
    } 

我得到一个错误作者:

名称“hdnCurrentUserName”在当前上下文中不存在。在当前上下文中不存在名称“hdnCurrentUserID”的 。

这是怎么发生的?

+0

你是否在动态创建控件?或者你把控件放在页面上? – sallushan

+0

它在上面的代码 – ytba92

+0

我是问,其中使用的是这个'ctrlChatBox'控件,在一些aspx页面上?你如何使用?你是否在aspx页面上动态创建这个控件? – sallushan

回答

0

ascx控件提供了我们可以使用的页面。

this.Page 

现在我们需要从该页面获得控件。既然我们知道它的名字,你可以使用FindControl

HiddenField Info = this.Page.FindControl("hdnfldIncDesc");