解决某些.net不方便解决的问题,解决方法就是 DHTML
2005-06-07 00:59
281 查看
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;
}
}
}
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;
}
}
}
相关文章推荐
- 对于重装SQL 2000出现的某些挂起文件问题解决方法
- 在.NET中发送邮件,使用回执功能中遇到问题的解决方法[在NOTES服务器上,C#,.NET2.0环境]
- windows命令行下随时随地调用csc编译器的方法(解决dos下编译.net程序找不到CSC的问题)
- .Net程序打包安装与卸载制作 系列问题解决方法
- .Net中vs2008测试ok,发布到IIS中功能就失败的问题解决方法
- .NET:关于byte数组在用StreamWriter文件写出后出现多余字符的解决方法及VS方案文件图标显示问题
- 『飞秋』在.NET 4中调用GDAL库时遇到的问题及解决方法
- Android7.0上某些PopuWindow出现显示位置不正确问题的解决方法
- .Net遇到的问题以及解决方法
- 好问题!也导入了类,该类的父类也具有这个方法,但是呢!就是调不到,你是不是感到郁闷呢?看我的播客吧!就是解决这个问题的!
- 某些单机游戏找不到DLL文件问题另类解决方法
- 续:Java Tomcat 中调用.net DLL的方法 - 实际部署中遇到的一些问题解决
- .NET 模板丢失问题解决方法
- 某些导致不能安装SQL SERVER 2005的问题及解决方法
- 关于TP5视图分离到根目录的解决方法 原有: 为了方便前端开发,我想把视图(view)部分分离出来专门给前端进行修改 过程:在进行视图设置分离的过程遇到了问题 参考了官方文档http://www
- .Net遇到的问题以及解决方法
- windows命令行下随时随地调用csc编译器的方法(解决dos下编译.net程序找不到CSC的问题)
- Java小结-能解决问题的方法就是好方法