2016-08-16 33 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");