我目前正在进行DotNetNuke模块开发。我在view.ascx上放了一个asp.net mutiview控件。这个视图中有三种观点。每个视图都有一个用占位符包裹的自定义模块控件。在第一个视图中的第一个模块控件上,我从网格视图中选择一行,并激活第二个视图。在第二个视图中,它接收由会话对象传递的值。但问题是,当第一次激活第二个视图时,我看不到分配给我想要赋值的标签的值。我必须通过单击链接按钮再次重定向到第二个视图。
有没有人能够帮助我? 我很感激你的善意。
在Control One上(SelectJob):
protected void GridViewJobList_SelectedIndexChanged(object sender, EventArgs e)
{
Job newJob=new Job(Convert.ToInt32(GridViewJobList.SelectedValue));
OnSelectedJob(newJob);
}
public event JobSelectedEventHandler JobSelected;
protected virtual void OnSelectedJob(Job j)
{
Session["JobId"]=j.jobId;
JobSelected(this,j);
}
一个View.ascx设计视图:
<asp:LinkButton ID="LinkButtonJobPost" runat="server" CausesValidation="False" OnClick="LinkButtonJobPost_Click">Job Post</asp:LinkButton>
<asp:LinkButton ID="LinkButtonJobApplication" runat="server" CausesValidation="False" OnClick="LinkButtonJobApplication_Click">Job Application</asp:LinkButton>
<asp:MultiView runat="server" ID="MutiViewJob" ActiveViewIndex="0">
<asp:View runat="server" ID="ViewJobPost">
<asp:PlaceHolder ID="PlaceHolderJobPost" runat="server">
<job:SelectJob ID="SelectJob" runat="server" />
</asp:PlaceHolder>
</asp:View>
<asp:View runat="server" ID="ViewJobApplication">
<asp:PlaceHolder ID="PlaceHolderJobApplication" runat="server">
<job:InputJob runat="server" id="InputJob"/>
</asp:PlaceHolder>
</asp:View>
</asp:MultiView>
在控制二上(InputJob):
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (!IsPostBack)
{
}
else
{
LabelJobId.Text = Session["JobId"].ToString();
}
catch (Exception exc)
{
Exceptions.ProcessModuleLoadException(this, exc);
}
}