我想在选择用户界面,将获取的用户姓名回传给上一个页面,具体代码如下:
选择页面btn_ok_Click按钮事件,获取选择用户的姓名
protected void btn_ok_Click(object sender, EventArgs e)
{
//string itemID = ItemIDs();
//BLL.Staffs bll = new BLL.Staffs();
//DataTable table = bll.GetStaffs(itemID);
string str = "";
string name = "";
foreach (GridViewRow row in FolderView.Rows)
{
CheckBox checkBox = (CheckBox)row.FindControl("checkMail");
if (checkBox != null && checkBox.Checked)
{
str = str + FolderView.DataKeys[row.RowIndex].Value.ToString() + ",";
}
}
if (str != "")
{
str = str.Substring(0, str.Length - 1);
}
BLL.Staffs bll = new BLL.Staffs();
DataTable table = bll.GetStaffs(str);
if (table.Rows.Count > 0)
{
for (int i = 0; i < table.Rows.Count; i++)
{
name = name + table.Rows[i]["StaffName"].ToString() + ',';
}
}
if (name != "")
{
name = name.Substring(0, name.Length - 1);
}
txt_users.Text = name;
Session["addUser"] = txt_users.Text;
if (txt_users.Text != "" && Session["addUser"].ToString() != "")
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "goBackScript", "CloseWindow();", true);
}
}
获取用户姓名存在选择页面的txt_users中,点击按钮后通过JS实现关闭选择页面
function CloseWindow()
{
window.close(); // 关闭当前窗口或标签页
return false; // 阻止按钮的默认提交行为(如果有的话)
}
关闭选择页面后,母页面(DocAdd.aspx)不能加载出选择的用户姓名,需要手动刷新页面才能显示,母页面代码如下:
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
Response.AddHeader("P3P", "CP=CAO PSA OUR");
//检测用户是否登录
if (!CheckUserLogin())
{
//Response.Redirect("../Login.aspx");
}
if (!Page.IsPostBack)
{
DirBinds();
}
//ItemIDs();
}
母页面获取子页面传过来的用户姓名:
private void ItemIDs()
{
if (Session["addUser"] != null)
{
string name = Session["addUser"].ToString();
txt_fileAdd.Text = name;
}
}
各位,帮忙看看这是什么问题!!