C# 从内容页更新母版页控件
我有一个带有C# 从内容页更新母版页控件,c#,asp.net,updatepanel,C#,Asp.net,Updatepanel,我有一个带有标签的UpdatePanel,我想在我的母版中更新它。事件发生在我的内容页上,下面是代码 内容ASP.net代码: <%@ MasterType TypeName="OnBoarding.Pages.Site" %> <asp:DropDownList ID="ddlTaskName" CssClass="chosen-select" DataSourceID="dsPopulateTaskName" AutoPostBack="true" DataValueFie
标签的UpdatePanel
,我想在我的母版中更新它。事件发生在我的内容页上,下面是代码
内容ASP.net代码:
<%@ MasterType TypeName="OnBoarding.Pages.Site" %>
<asp:DropDownList ID="ddlTaskName" CssClass="chosen-select" DataSourceID="dsPopulateTaskName" AutoPostBack="true" DataValueField="Task Name" runat="server" Width="100%" Font-Size="11px" AppendDataBoundItems="true" OnSelectedIndexChanged="ddlTaskName_onSelectIndexChanged">
<asp:ListItem Text="All" Value="%"></asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="dsPopulateTaskName" runat="server" ConnectionString="<%$ ConnectionStrings:gvConnString %>" SelectCommand="QUERY"></asp:SqlDataSource>
<asp:UpdatePanel runat="server" ID="upMessage" ClientIDMode="Static" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblMessage" Font-Size="x-small" runat="server" Text="" ClientIDMode="Static"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
C#代码隐藏:
protected void ddlTaskName_onSelectIndexChanged(object sender, EventArgs e)
{
FilterMessages();
}
public void FilterMessages()
{
DataTable msgTable = HttpContext.Current.Session["MessageTable"] as DataTable;
string query = "";
Stack msgStack = new Stack();
if (ddlClient.SelectedIndex > 0)
{
query += "Client = '" + ddlClient.SelectedItem.Text + "' OR Client is NULL";
}
if (ddlSite.SelectedIndex > 0 && query == "")
{
query += "Site = '" + ddlSite.SelectedItem.Text + "' OR Site is NULL";
}
else if (ddlSite.SelectedIndex > 0)
{
query += " AND Site = '" + ddlSite.SelectedItem.Text + "' OR Site is NULL";
}
if (ddlProvider.SelectedIndex > 0 && query == "")
{
query += "Provider = '" + ddlProvider.SelectedItem.Text + "' OR Provider is NULL";
}
else if (ddlProvider.SelectedIndex > 0)
{
query += " AND Provider = '" + ddlProvider.SelectedItem.Text + "' OR Provider is NULL";
}
UpdatePanel upMsg = (UpdatePanel)Master.FindControl("upMessage");
if (query != "")
{
DataRow[] result = msgTable.Select(query);
System.Web.UI.WebControls.Label lblMsg = (System.Web.UI.WebControls.Label)Master.FindControl("lblMessage");
if (lblMsg != null)
{
lblMsg.Text = "";
}
//lblMessage.Text = "";
foreach (DataRow row in result)
{
if (row["Active"].ToString() == "True")
{
string[] myStrings = new string[] { row["Created"].ToString().Split(' ')[0], string.IsNullOrEmpty(row["Client"].ToString()) ? null : row["Client"].ToString(), string.IsNullOrEmpty(row["Site"].ToString()) ? null : row["Site"].ToString(), row["Message"].ToString() };
string strResult = string.Join(" ", myStrings.Where(str => !string.IsNullOrEmpty(str)));
msgStack.Push(strResult);
}
}
foreach (string message in msgStack)
{
lblMsg.Text += message + "</br>";
//lblMessage.Text += message + "</br>";
}
}
else
{
PopulateMessageGV();
}
if (upMsg != null)
{
upMsg.Update();
}
//upMessage.Update();
}
protected void PopulateMessageGV()
{
UpdatePanel upMsg = (UpdatePanel)Master.FindControl("upMessage");
System.Web.UI.WebControls.Label lblMsg = (System.Web.UI.WebControls.Label)Master.FindControl("lblMessage");
if (lblMsg != null)
{
lblMsg.Text = "";
}
//lblMessage.Text = "";
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Created", typeof(string));
dt.Columns.Add("Message", typeof(string));
dt.Columns.Add("Client", typeof(string));
dt.Columns.Add("Site", typeof(string));
dt.Columns.Add("Provider", typeof(string));
dt.Columns.Add("Active", typeof(bool));
dt.Columns.Add("CreatedBy", typeof(string));
using (var context = new ClientContext(hostWeb))
{
Stack msgStack = new Stack();
var hostSite = context.Web;
context.Load(hostSite, s => s.Title);
context.ExecuteQuery();
ListCollection allLists = hostSite.Lists;
Microsoft.SharePoint.Client.List messageList = allLists.GetByTitle("AdminMessage");
context.Load(messageList);
context.ExecuteQuery();
try
{
var query = CamlQuery.CreateAllItemsQuery();
Microsoft.SharePoint.Client.ListItemCollection allItems = messageList.GetItems(query);
context.Load(allItems);
context.ExecuteQuery();
if (allItems.Count > 0)
{
foreach (Microsoft.SharePoint.Client.ListItem item in allItems)
{
DataRow dr = dt.NewRow();
dr["ID"] = item["ID"];
dr["Created"] = item["Created"];
dr["Message"] = item["Message"];
dr["Client"] = item["Client"];
dr["Site"] = item["Site"];
dr["Provider"] = item["Provider"];
dr["Active"] = item["Active"];
FieldUserValue test = (FieldUserValue)item["Author"];
dr["CreatedBy"] = test.LookupValue.ToString();
dt.Rows.Add(dr);
if (item["Active"].ToString() == "True")
{
string[] myStrings = new string[] { item["Created"].ToString().Split(' ')[0], string.IsNullOrEmpty(dr["Client"].ToString()) ? null : item["Client"].ToString(), string.IsNullOrEmpty(dr["Site"].ToString()) ? null : item["Site"].ToString(), item["Message"].ToString() };
string result = string.Join(" ", myStrings.Where(str => !string.IsNullOrEmpty(str)));
msgStack.Push(result);
}
}
}
HttpContext.Current.Session["MessageTable"] = dt;
foreach (string message in msgStack)
{
lblMsg.Text += message + "</br>";
//lblMessage.Text += message + "</br>";
}
if (upMsg != null)
{
upMsg.Update();
}
//upMessage.Update();
}
catch (Exception ex)
{
string error = ex.Message;
}
}
}
受保护的void ddlstaskname\u onSelectIndexChanged(对象发送方,事件参数e)
{
过滤消息();
}
公共无效筛选器消息()
{
DataTable msgTable=HttpContext.Current.Session[“MessageTable”]作为DataTable;
字符串查询=”;
堆栈msgStack=新堆栈();
如果(ddlClient.SelectedIndex>0)
{
query+=“Client='”+ddlClient.SelectedItem.Text+“'或客户端为空”;
}
如果(ddlSite.SelectedIndex>0&&query==“”)
{
查询+=“站点=”+“ddlSite.SelectedItem.Text+”,或站点为空;
}
否则如果(ddlSite.SelectedIndex>0)
{
query+=”和Site='“+ddlSite.SelectedItem.Text+'”或Site为空”;
}
如果(ddlProvider.SelectedIndex>0&&query==“”)
{
query+=“Provider='”+ddlProvider.SelectedItem.Text+“'或Provider为空”;
}
else if(ddlProvider.SelectedIndex>0)
{
查询+=”和提供程序='“+ddlProvider.SelectedItem.Text+”,或提供程序为空”;
}
UpdatePanel upMsg=(UpdatePanel)Master.FindControl(“upMessage”);
如果(查询!=“”)
{
DataRow[]result=msgTable.Select(查询);
System.Web.UI.WebControls.Label lblMsg=(System.Web.UI.WebControls.Label)Master.FindControl(“lblMessage”);
如果(lblMsg!=null)
{
lblMsg.Text=“”;
}
//lblMessage.Text=“”;
foreach(结果中的数据行)
{
if(行[“活动”].ToString()=“真”)
{
string[]myStrings=newstring[]{row[“Created”].ToString().Split(“”)[0],string.IsNullOrEmpty(row[“Client”].ToString())?null:row[“Client”].ToString(),string.IsNullOrEmpty(row[“Site”].ToString())?null:row[“Site”].ToString(),row[“Message”].ToString();
string strResult=string.Join(“,myStrings.Where(str=>!string.IsNullOrEmpty(str));
msgStack.Push(strResult);
}
}
foreach(msgStack中的字符串消息)
{
lblMsg.Text+=message+“”;
//lblMessage.Text+=message+“”;
}
}
其他的
{
PopulateMessageGV();
}
如果(upMsg!=null)
{
upMsg.Update();
}
//upMessage.Update();
}
受保护的void PopulateMessageGV()
{
UpdatePanel upMsg=(UpdatePanel)Master.FindControl(“upMessage”);
System.Web.UI.WebControls.Label lblMsg=(System.Web.UI.WebControls.Label)Master.FindControl(“lblMessage”);
如果(lblMsg!=null)
{
lblMsg.Text=“”;
}
//lblMessage.Text=“”;
DataTable dt=新的DataTable();
添加(“ID”,typeof(int));
添加(“已创建”,类型(字符串));
添加(“消息”,类型(字符串));
添加(“客户机”,类型(字符串));
添加(“站点”,类型(字符串));
添加(“提供者”,typeof(字符串));
添加(“活动”,类型(bool));
Add(“CreatedBy”,typeof(string));
使用(var context=newclientcontext(hostWeb))
{
堆栈msgStack=新堆栈();
var hostSite=context.Web;
Load(主机站点,s=>s.Title);
context.ExecuteQuery();
ListCollection allLists=hostSite.Lists;
Microsoft.SharePoint.Client.List messageList=AllList.GetByTitle(“AdminMessage”);
加载(messageList);
context.ExecuteQuery();
尝试
{
var query=CamlQuery.CreateAllItemsQuery();
Microsoft.SharePoint.Client.ListItemCollection allItems=messageList.GetItems(查询);
加载(allItems);
context.ExecuteQuery();
如果(allItems.Count>0)
{
foreach(allItems中的Microsoft.SharePoint.Client.ListItem项)
{
DataRow dr=dt.NewRow();
dr[“ID”]=项目[“ID”];
dr[“已创建”]=项目[“已创建”];
dr[“消息”]=项目[“消息”];
dr[“客户”]=项目[“客户”];
dr[“现场”]=项目[“现场”];
dr[“提供者”]=项目[“提供者”];
dr[“活动”]=项目[“活动”];
FieldUserValue测试=(FieldUserValue)项[“作者”];
dr[“CreatedBy”]=test.LookupValue.ToString();
dt.Rows.Add(dr);
如果(项[“活动”].ToString()=“真”)
{
string[]myStrings=newstring[]{item[“Created”].ToString().Split(“”)[0],string.IsNullOrEmpty(dr[“Client”].ToString())?null:item[“Client”].ToString(),string.IsNullOrEmpty(dr[“Site”].ToString())?null:item[“Site”].ToString(),item[“Message”].ToString();
字符串结果=string.Join(“,myStrings.Where(str=>!string.IsNullOrEmpty(str));
msgStack.Push(结果);
}
}
}
HttpContext.Current.Session[“MessageTable”]=dt;
foreach(msgStack中的字符串消息)
{
lblMsg.Text+=message+“”;
//lblMessage.Text+=message+“”;
}
如果(upMsg!=null)
{
upMsg.Update();
}
//upMessage.Update();
}
捕获(例外情况除外)
{
字符串错误=例如消息;
}
}
}
母版页ASP.net代码:
<%@ MasterType TypeName="OnBoarding.Pages.Site" %>
<asp:DropDownList ID="ddlTaskName" CssClass="chosen-select" DataSourceID="dsPopulateTaskName" AutoPostBack="true" DataValueField="Task Name" runat="server" Width="100%" Font-Size="11px" AppendDataBoundItems="true" OnSelectedIndexChanged="ddlTaskName_onSelectIndexChanged">
<asp:ListItem Text="All" Value="%"></asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="dsPopulateTaskName" runat="server" ConnectionString="<%$ ConnectionStrings:gvConnString %>" SelectCommand="QUERY"></asp:SqlDataSource>
<asp:UpdatePanel runat="server" ID="upMessage" ClientIDMode="Static" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblMessage" Font-Size="x-small" runat="server" Text="" ClientIDMode="Static"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>