C# 使用“从源页面获取值”;上一页“;
我尝试使用PreviousPage技术在两个web表单之间发布值。C# 使用“从源页面获取值”;上一页“;,c#,asp.net,C#,Asp.net,我尝试使用PreviousPage技术在两个web表单之间发布值。 我已经关注了关于上一页的MSDN文章(),我也提到了这个()。看起来一切正常,但我在目标页面中看到了以下关于我的公共方法的“System.Web.UI.Page的未知成员'指定'” 我做错了什么??请帮忙。多谢各位 这是我的源网页html代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="adduser.aspx.cs" Inherits="adduser"
我已经关注了关于上一页的MSDN文章(),我也提到了这个()。看起来一切正常,但我在目标页面中看到了以下关于我的公共方法的“System.Web.UI.Page的未知成员'指定'” 我做错了什么??请帮忙。多谢各位 这是我的源网页html代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="adduser.aspx.cs" Inherits="adduser" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="../Styles/main_style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.style1
{
width: 100%;
}
</style>
</head>
<body style="min-height: 600px; background-image: none !important;">
<form id="form1" runat="server">
<telerik:RadScriptManager runat="server" ID="RadScriptManager1" />
<div class="lightboxContainer">
<div class="lightboxContainerSection">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<table cellpadding="5" width="600px" class="style1" style="font-size: 12px; margin: 5px;
font-weight: bold;">
<tr>
<td>
Find User
</td>
<td>
<telerik:RadTextBox ID="RadTextBox1" runat="server" ValidationGroup="textbox1" OnTextChanged="TextBox1_TextChanged">
</telerik:RadTextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="RadTextBox1"
ErrorMessage="*" Style="color: #FF0000" ValidationGroup="textbox1"></asp:RequiredFieldValidator>
</td>
<td>
<telerik:RadButton ID="RadButton1" runat="server" Text="Find User" OnClick="RadButton1_Click"
ValidationGroup="textbox1">
</telerik:RadButton>
</td>
<td>
</td>
</tr>
<tr>
<td colspan="4">
<telerik:RadGrid ID="RadGrid_User" runat="server" OnNeedDataSource="RadGrid_User_NeedDataSource"
OnSelectedIndexChanged="RadGrid_User_SelectedIndexChanged" AllowPaging="True"
CellSpacing="0" GridLines="None">
<ClientSettings EnablePostBackOnRowClick="True">
<Selecting AllowRowSelect="True" />
</ClientSettings>
</telerik:RadGrid>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
User name
</td>
<td>
<asp:Label ID="LabelUser" runat="server" Text="Label"></asp:Label>
</td>
<td>
Company
</td>
<td>
<asp:Label ID="LabelCompany" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td>
Designation
</td>
<td>
<asp:Label ID="LabelDesignation" runat="server" Text="Label"></asp:Label>
</td>
<td>
Department
</td>
<td>
<asp:Label ID="LabelDepartment" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td>
Mobile
</td>
<td>
<asp:Label ID="LabelMobile" runat="server" Text="Label"></asp:Label>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td colspan="4">
<asp:Label ID="LabelConfirmation" runat="server" Text="Label"></asp:Label>
</td>
</tr>
<tr>
<td>
<telerik:RadButton ID="RadButton2" runat="server" onclick="RadButton2_Click"
Text="Yes">
</telerik:RadButton>
</td>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<hr />
</div>
</form>
</body>
</html>
这是我的目标页面
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="adduserpermission.aspx.cs"
Inherits="adduserpermission" %>
<%@ PreviousPageType VirtualPath="~/AdminInterfaces/adduser.aspx" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<link href="../Styles/main_style.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.style1
{
width: 100%;
}
</style>
</head>
<body style="min-height: 600px; background-image: none !important;">
<form id="form1" runat="server">
<telerik:RadScriptManager runat="server" ID="RadScriptManager1" />
<div class="lightboxContainer">
<div class="lightboxContainerSection">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><asp:Label ID="Label2"
runat="server" Text="Label"></asp:Label><asp:Label ID="Label3"
runat="server" Text="Label"></asp:Label><asp:Label ID="Label4"
runat="server" Text="Label"></asp:Label>
</div>
</div>
</form>
</body>
</html>
您需要将其转换为正确的类型:
public partial class adduserpermission : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
adduser prevPage = PreviousPage as adduser;
if (prevPage != null)
{
Label1.Text = prevPage.Designation;
Label2.Text = prevPage.Department;
Label3.Text = prevPage.Company;
Label4.Text = prevPage.Mobile;
}
}
}
现在,当我将标签与属性混淆时,这将起作用 在上一页上,您有一个名为
LabelDesignation
的标签,但在这里您使用了错误的名称来访问它。试着用这个
源代码页代码隐藏文件中的此代码有问题
using System;
using System.Linq;
using Telerik.Web.UI;
public partial class adduser : System.Web.UI.Page
{
private ActiveDirectory ad = new ActiveDirectory();
private DatabaseConnect db = new DatabaseConnect();
public void RadGrid_User_SelectedIndexChanged(object sender, EventArgs e)
{
GridDataItem selectedItem = (GridDataItem)RadGrid_User.SelectedItems[0];
string user = selectedItem["Email"].Text;
Session["userID"] = user.Split('@')[0];
RadTextBox1.Text = (string)Session["userID"];
string detail = ad.GetUserDetails(RadTextBox1.Text.Trim());
string[] details = detail.Split('/');
LabelUser.Text = details[0];
LabelCompany.Text = details[1];
LabelDepartment.Text = details[3];
LabelDesignation.Text = details[4];
LabelMobile.Text = details[5];
LabelConfirmation.Text = "Do you want to grant "+details[0]+" permission to access the CRI ?";
LabelUser.Visible = true;
LabelCompany.Visible = true;
LabelDepartment.Visible = true;
LabelDesignation.Visible = true;
LabelMobile.Visible = true;
LabelConfirmation.Visible = true;
RadButton2.Visible = true;
}
public void RadGrid_User_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
string username = this.RadTextBox1.Text.Trim();
if (username.Length >= 1)
{
this.RadGrid_User.DataSource = this.ad.GetUserDetails_WildCard(this.RadTextBox1.Text.Trim());
}
else
{
this.RadGrid_User.Visible = false;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (this.db.IsAllowedAdministrator(this.User.Identity.Name))
{
if (!this.IsPostBack)
{
LabelCompany.Visible = false;
LabelDepartment.Visible = false;
LabelDesignation.Visible = false;
LabelMobile.Visible = false;
LabelUser.Visible = false;
LabelConfirmation.Visible = false;
RadButton2.Visible = false;
}
}
else
{
this.Response.Redirect("~/ZCRI_RestrictedAdmin.aspx");
}
}
protected void RadButton1_Click(object sender, EventArgs e)
{
this.RadGrid_User.Rebind();
this.RadGrid_User.Visible = true;
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
LabelCompany.Visible = false;
LabelDepartment.Visible = false;
LabelDesignation.Visible = false;
LabelMobile.Visible = false;
LabelUser.Visible = false;
LabelConfirmation.Visible = false;
RadButton2.Visible = false;
}
public string Designation
{
get
{
return LabelDesignation.Text;
}
}
public string Mobile
{
get
{
return LabelMobile.Text;
}
}
public string Company
{
get
{
return LabelCompany.Text;
}
}
public string Department
{
get
{
return LabelDepartment.Text;
}
}
protected void RadButton2_Click(object sender, EventArgs e)
{
Response.Redirect(@"~/AdminInterfaces\adduserpermission.aspx");
}
}
using System;
using System.Linq;
public partial class adduserpermission : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = PreviousPage.Designation;
Label2.Text = PreviousPage.Department;
Label3.Text = PreviousPage.Company;
Label4.Text = PreviousPage.Mobile;
}
}
this.Response.Redirect("~/ZCRI_RestrictedAdmin.aspx");
PreviousPage属性返回使用Server.Transfer将控件发送到此页面的页面
如果当前页面是由于直接请求(不是来自另一页面的转移或交叉发布)而呈现的,则PreviousPage属性包含null
else
{
this.Server.Transfer("~/ZCRI_RestrictedAdmin.aspx");
}
using System;
using System.Linq;
public partial class adduserpermission : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Page.PreviousPage != null)
{
if(Page.PreviousPage.IsCrossPagePostBack == true)
{
Label1.Text = PreviousPage.Designation;
Label2.Text = PreviousPage.Department;
Label3.Text = PreviousPage.Company;
Label4.Text = PreviousPage.Mobile;
}
}
}
}
顺便说一句,尝试在类名上使用正确的命名约定:)其他事情都可以,但他/她在目标页面中使用了错误的变量名。她尝试使用这些名称访问属性(这些名称确实存在于adduser页面中)。我的代码显示了如何操作。在上一页中,她只有名称、部门、公司、手机作为无法访问的列中的文本。查看您上面发布的代码,她正在访问手机并将其分配给Label4,这意味着她正在访问上一页的标签。@Lev我尝试了您的建议,但它给了我这个错误。。。错误“adduser”不包含“Designation”的定义,并且找不到接受类型为“adduser”的第一个参数的扩展方法“Designation”(是否缺少using指令或程序集引用?