在 asp.net 网络表单中回发后未调用我的函数
My function is not called after a postback in asp.net webforms
我有一个名为 SetActionSection() 的函数,我将其放置在我的页面加载中。我期待它被调用,但没有任何反应。当我重新加载页面时,我得到了我想要的结果。
这是我的页面加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string fullName = GetUserFullName();
string id = Request.QueryString["id"];
TextBoxProjectManager.Text = fullName;
if (id != null)
{
GetCMMDetails(TextBoxProjectManager.Text);
int valid = ValidateUserAccess(id, fullName);
if (valid > 0)
GetProjectPostEval();
else
{
Response.Write("You are not allowed to access this data.");
ActionSection.Visible = false;
}
}
else
{
TextBoxProjectManager.Text = fullName;
GetCMMDetails(fullName);
}
SetActionSection();
}
}
这里是 SetActionSection() 函数,它根据数据库中的状态显示按钮。
private void SetActionSection()
{
string id = Request.QueryString["id"];
if (id == null)
{
LinkButtonSaveDraft.Visible = true;
LinkButtonSubmit.Visible = true;
ActionSection.Visible = true;
return;
}
string status = GetStatus(id);
string projectManager = GetCMM(id, "ProjectManager");
string buco = GetCMM(id, "Buco");
string businessExecutiveOfficer = GetCMM(id, "BusinessExecutiveOfficer");
string i2lFunctionLead = GetCMM(id, "I2LFunctionLead");
string user = GetUserFullName();
if ((status.Equals("Draft", StringComparison.OrdinalIgnoreCase))
&& user.Equals(projectManager, StringComparison.OrdinalIgnoreCase))
{
Response.Write(status + " Draft");
LinkButtonSaveDraft.Visible = true;
LinkButtonSubmit.Visible = true;
ActionSection.Visible = true;
}
if (status.Equals("Submitted", StringComparison.OrdinalIgnoreCase) &&
user.Equals(buco))
{
Response.Write(status + " Submitted");
LinkButtonSaveDraft.Visible = false;
LinkButtonSubmit.Visible = false;
LinkButtonBUCOApprove.Visible = true;
ActionSection.Visible = true;
}
if (status.Equals("(Approved) - BUCO", StringComparison.OrdinalIgnoreCase) &&
user.Equals(businessExecutiveOfficer))
{
Response.Write(status + " (Approved) - BUCO");
LinkButtonBUCOApprove.Visible = false;
LinkButtonBEOApprove.Visible = true;
}
if (status.Equals("(Approved) - BEO", StringComparison.OrdinalIgnoreCase) &&
user.Equals(businessExecutiveOfficer))
{
Response.Write(status + " (Approved) - BEO");
LinkButtonBEOApprove.Visible = false;
LinkButtonI2LFunctionLeadApprove.Visible = true;
}
if (status.Equals("(Approved) - I2L Function Lead", StringComparison.OrdinalIgnoreCase))
{
Response.Write(status + " (Approved) - I2L Function Lead");
LinkButtonI2LFunctionLeadApprove.Visible = false;
}
}
我已经测试了 SetActionSection 方法并且它有效。我只想在用户单击提交按钮时调用它。顺便一提。我正在重定向到相同的表单。
if(!IsPostBack) 条件中的任何内容都只会在初始加载时执行,而不会在提交时执行。如果你想
你可以把你想要 运行 提交(回发)的代码放在 else 里面
if (!IsPostBack)
{
....
}
else
{
SetActionSection();
}
https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.page.ispostback?view=netframework-4.8
或者将您的代码放在按钮点击事件中
我有一个名为 SetActionSection() 的函数,我将其放置在我的页面加载中。我期待它被调用,但没有任何反应。当我重新加载页面时,我得到了我想要的结果。
这是我的页面加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string fullName = GetUserFullName();
string id = Request.QueryString["id"];
TextBoxProjectManager.Text = fullName;
if (id != null)
{
GetCMMDetails(TextBoxProjectManager.Text);
int valid = ValidateUserAccess(id, fullName);
if (valid > 0)
GetProjectPostEval();
else
{
Response.Write("You are not allowed to access this data.");
ActionSection.Visible = false;
}
}
else
{
TextBoxProjectManager.Text = fullName;
GetCMMDetails(fullName);
}
SetActionSection();
}
}
这里是 SetActionSection() 函数,它根据数据库中的状态显示按钮。
private void SetActionSection()
{
string id = Request.QueryString["id"];
if (id == null)
{
LinkButtonSaveDraft.Visible = true;
LinkButtonSubmit.Visible = true;
ActionSection.Visible = true;
return;
}
string status = GetStatus(id);
string projectManager = GetCMM(id, "ProjectManager");
string buco = GetCMM(id, "Buco");
string businessExecutiveOfficer = GetCMM(id, "BusinessExecutiveOfficer");
string i2lFunctionLead = GetCMM(id, "I2LFunctionLead");
string user = GetUserFullName();
if ((status.Equals("Draft", StringComparison.OrdinalIgnoreCase))
&& user.Equals(projectManager, StringComparison.OrdinalIgnoreCase))
{
Response.Write(status + " Draft");
LinkButtonSaveDraft.Visible = true;
LinkButtonSubmit.Visible = true;
ActionSection.Visible = true;
}
if (status.Equals("Submitted", StringComparison.OrdinalIgnoreCase) &&
user.Equals(buco))
{
Response.Write(status + " Submitted");
LinkButtonSaveDraft.Visible = false;
LinkButtonSubmit.Visible = false;
LinkButtonBUCOApprove.Visible = true;
ActionSection.Visible = true;
}
if (status.Equals("(Approved) - BUCO", StringComparison.OrdinalIgnoreCase) &&
user.Equals(businessExecutiveOfficer))
{
Response.Write(status + " (Approved) - BUCO");
LinkButtonBUCOApprove.Visible = false;
LinkButtonBEOApprove.Visible = true;
}
if (status.Equals("(Approved) - BEO", StringComparison.OrdinalIgnoreCase) &&
user.Equals(businessExecutiveOfficer))
{
Response.Write(status + " (Approved) - BEO");
LinkButtonBEOApprove.Visible = false;
LinkButtonI2LFunctionLeadApprove.Visible = true;
}
if (status.Equals("(Approved) - I2L Function Lead", StringComparison.OrdinalIgnoreCase))
{
Response.Write(status + " (Approved) - I2L Function Lead");
LinkButtonI2LFunctionLeadApprove.Visible = false;
}
}
我已经测试了 SetActionSection 方法并且它有效。我只想在用户单击提交按钮时调用它。顺便一提。我正在重定向到相同的表单。
if(!IsPostBack) 条件中的任何内容都只会在初始加载时执行,而不会在提交时执行。如果你想
你可以把你想要 运行 提交(回发)的代码放在 else 里面 if (!IsPostBack)
{
....
}
else
{
SetActionSection();
}
https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.page.ispostback?view=netframework-4.8
或者将您的代码放在按钮点击事件中