using System;
using System.Collections;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace PPA.Runtime.Util
{
/// <summary>
/// WebUtil Web功能。
/// </summary>
public class WebUtil
{
public WebUtil()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static void InsertTableColumn(Page page, string tabObjId, int columnIdx, string innerHTML, int width)
{
StringBuilder script = new StringBuilder();
script.Append("<script language=javascript> \n<!--\n");
script.Append("function InsertColumn(tab,idx,tdContent,tdWidth) \n");
script.Append("{ \n");
script.Append("var td = tab.rows[0].insertCell(idx); \n");
script.Append("td.rowSpan = tab.rows.length; \n");
script.Append("td.innerHTML = tdContent; \n");
script.Append("td.width = tdWidth; \n");
script.Append("} \n-->\n</script>\n");
page.RegisterStartupScript("InsertColumnScript",script.ToString());
StringBuilder call = new StringBuilder();
call.Append("<script language=javascript> \n<!--\n");
call.AppendFormat("InsertColumn(document.all[\"{0}\"],{1},\"{2}\",{3});",tabObjId,columnIdx,innerHTML,width);
call.Append(" \n-->\n</script>\n");
page.RegisterStartupScript("CallInsertColumnScript",call.ToString());
}
public static void ScrollIntoObject(Page page,string objId)
{
StringBuilder script = new StringBuilder();
script.Append( "<script language=\"javascript\">\n");
script.Append( "function ViewObj(objName)\n");
script.Append( "{\n");
script.Append( "var obj = document.all.item(objName);\n");
script.Append( "if (obj != null)\n");
script.Append( "{\n");
script.Append( "\tobj.scrollIntoView();\n");
script.Append( "\twindow.scroll(0,window.screen.availHeight/3);\n");
script.Append( "\tobj.focus();\n");
script.Append( "}\n");
script.Append( "}\n");
script.Append( "function AutoScrollIntoView()");
script.Append( "{\n");
script.Append( string.Format("setTimeout(\"ViewObj('{0}')\",1000);\n", objId));
script.Append( "}\n");
script.Append( "window.onload = AutoScrollIntoView;\n");
script.Append( "</script>\n");
page.RegisterStartupScript("AutoScrollIntoView",script.ToString());
}
/// <summary>
/// 合并指定数据表的某些列,条件是相邻上下列的内容一致
/// </summary>
/// <param name="grid">数据表</param>
/// <param name="startRow">开始计划合并的行</param>
/// <param name="cellIdx">第几列要计划合并</param>
public static void MergeDataGridCells(DataGrid grid,int startRow,int cellIdx)
{
StringBuilder script = new StringBuilder();
script.Append("<SCRIPT LANGUAGE=\"JScript\">\n");
script.Append("function mergeCells(tab,startRow,cellIdx) {\n");
script.Append(" var lastCell = null;\n");
script.Append(" for (var i=startRow; i < tab.rows.length; i++) {\n");
script.Append(" var row = tab.rows(i);\n");
script.Append(" var cell = row.cells(cellIdx);\n");
script.Append(" if(lastCell != null)\n");
script.Append(" { \n");
script.Append(" if(lastCell.innerHTML == cell.innerHTML)\n");
script.Append(" {\n");
script.Append(" row.deleteCell(cellIdx);\n");
script.Append(" lastCell.rowSpan ++;\n");
script.Append(" }\n");
script.Append(" else\n");
script.Append(" lastCell = cell; \n");
script.Append(" }\n");
script.Append(" else\n");
script.Append(" lastCell = cell;\n");
script.Append(" }\n");
script.Append("}\n");
script.Append("</SCRIPT>\n");
grid.Page.RegisterStartupScript("MergeTableCellScript",script.ToString());
//DO IT!!!
StringBuilder doScript = new StringBuilder();
doScript.AppendFormat("<script language=javascript><!--\n mergeCells({0},{1},{2});\n-->\n</script>",grid.ID,startRow,cellIdx);
grid.Page.RegisterStartupScript("DoMerge" + grid.ID + "cells",doScript.ToString());
}
/// <summary>
/// 取得选中的编号列表
/// </summary>
/// <param name="dataGrid">数据表</param>
/// <param name="checkBoxList">checkbox的id</param>
/// <param name="labelId">存放编号的label的id</param>
/// <returns></returns>
public static IList GetSelectedIdList(DataGrid dataGrid,string checkBoxList,string labelId)
{
IList result = new ArrayList();
for (int i = 0; i < dataGrid.Items.Count; i++)
{
CheckBox chkBox = (CheckBox) dataGrid.Items[i].FindControl(checkBoxList);
if (chkBox.Checked)
{
Label LabelId = (Label) dataGrid.Items[i].FindControl(labelId);
result.Add(Convert.ToInt32(LabelId.Text));
}
}
return result;
}
}
}