欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » SmartGrid使用教程 » 正文

SmartGrid教程:附录

创建时间:2012年03月22日 21:56  阅读次数:(4705)
分享到:
附5.<colgroup >标签用于对表格中的列进行组合
<colgroup > 标签用于对表格中的列进行组合,以便对其进行格式化。
如需对全部列应用样式,<colgroup > 标签很有用,这样就不需要对各个单元和各行重复应用样式了。
<colgroup > 标签只能在 table 元素中使用。
例:
<table width="100%" border="1" >
<colgroup span="2" align="left" ></colgroup >
<colgroup align="right" style="color:#0000FF;" ></colgroup >
<tr >
<th >ISBN</th >
<th >Title</th >
<th >Price</th >
</tr >
<tr >
<td >3476896</td >
<td >My first HTML</td >
<td >$53</td >
</tr >
</table >


附6.JS动态执行函数示例
<script type=”text/javascript” >
function Mytest(message)
{
alert(message);
}
Var jsFunction=Mytest”;
if(typeof(jsFunction) == "string")
{
jsFunction = eval(jsFunction);
}

jsFunction (“消息”);


附7.JS调用C#方法示例
(1)使用<%=方法或属性% >
Var data = '<%=GetDemandDataString("' + PageIndex.toString() + '") % >';
可以无参数,如果有参数必须是字符类型,缺点是只在编译时取值,取值后不变
(2)利用ScriptManager控件
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" / >
注意一定要设置EnablePageMethods="true",而且所调用的后台方法必须是WebMethod静态方法
function myLazyLoad(grid, e) {
//第一页在页面Page_Load中加载
var PageIndex;
if (e.currentPageIndex <= 1) {
PageIndex = 1;
}
else {
PageIndex = e.currentPageIndex;
}
PageIndex = PageIndex + 1; 

PageMethods.GetDemandDataString(PageIndex, e.pageSize,myLazyLoad_OnSucceeded, myLazyLoad_OnFailed); 

e.currentPageIndex = PageIndex;
}
//成功时的处理方法
function myLazyLoad_OnSucceeded(result) {
var dom = new ActiveXObject("MSXML.DOMDocument");
dom.loadXML(result);
var grid = document.getElementById("<%=SmartGrid2.ClientID % >");
grid.append(dom.documentElement);
}
//失败时的处理方法
function myLazyLoad_OnFailed(error) { 
}


后台代码示例:
//懒加载某页数据 
[System.Web.Services.WebMethod]
public static string GetDemandDataString(int pageIndex,int pageSize)
{
XmlDocument doc;
string selectCmdString = "Select TOP(" + pageSize.ToString() + ") * FROM (Select *,"
+ " ROW_NUMBER() OVER (ORDER BY GID) AS ROWNUM FROM Storage_Goods as tab) as tab"
+ " Where tab.ROWNUM  > " + ((pageIndex - 1) * pageSize).ToString()
+ " ORDER BY tab.ROWNUM";

DataSet currentDs = new DataSet();
using (SqlConnection currentConn = new SqlConnection(_connectionstring))
{
//获取数据
currentConn.Open();
SqlDataAdapter currentSda = new SqlDataAdapter(selectCmdString, currentConn);
currentSda.Fill(currentDs, "Storage_Goods");

doc = MyConvertDataTableToXML(currentDs.Tables["Storage_Goods"]);
currentConn.Close();
}
return doc.InnerXml;
}
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论21条
  • #1楼  评论人:匿名  评论时间:2012-4-10 17:45:42
  • SmartGridColumn sgColumn = sgTrade.Columns.FromColumnName(""); DropDownList ddl = (DropDownList)sgColumn.ControlEditor; ddl.SelectedIndex = 2; 这样设置默认选项无效,lz有没有好的方法。
  • #2楼  评论人:Wyf  评论时间:2012-4-10 20:22:56
  • 直接给这个栏位赋初始值就好了。
  • #3楼  评论人:匿名  评论时间:2012-4-11 9:13:34
  • 不能赋初始值,在不绑定数据源的前提下。
  • #4楼  评论人:Wyf  评论时间:2012-4-11 9:56:34
  • 为什么不能赋初始值呢?你的ddl.SelectedIndex=2不也是想达到用户进来就让这个下拉项选择好索引为2的选项么?你可以在页面加载时给SmartGrid构造一个DataTable的初始值,然后这个DataTable只有sgcolumn与sgcolumnvalue这两列,并且列的值就是ddl.selectindex=2的值,就OK了。如果你不想给初始值,那么就只有在htc文件中处理了。这么会麻烦一些。
  • #5楼  评论人:Wyf  评论时间:2012-4-11 9:57:26
  • 用户并不知道你有没有给这个SmartGrid设置好初始值了,呵呵,这个要灵活运用啊。
  • #6楼  评论人:匿名  评论时间:2012-4-12 13:43:13
  • 谢谢lz,又解决了一个问题,列宽自适应怎么实现呢?
  • #7楼  评论人:Wyf  评论时间:2012-4-12 14:17:30
  • 自适应列宽,我现在的解决方法是先计算出数据源中该列的值的最大长度,然后根据值的最大长度定列宽,你也可以试试从css着手,css我不太熟,smartgrid的样式可以看这里:http://www.lmwlove.com/ae/ID123
  • #8楼  评论人:Wyf  评论时间:2012-4-12 14:18:47
  • 求数据源中列的值的最大长度可以看这里: 利用DataColumn的Expression属性取DataTable中某列内容的最大长度 http://www.lmwlove.com/ac/ID488
  • #9楼  评论人:匿名  评论时间:2012-4-12 15:07:57
  • 暂时用overflow:visible解决
  • #10楼  评论人:匿名  评论时间:2012-4-12 15:40:27
  • 怎么实时获取复选框列的状态呢,htc里面不能在点击的时候获取,onchange和onclick都不行。
  • #11楼  评论人:Wyf  评论时间:2012-4-12 17:24:44
  • 这个实现起来代码要的比较多一此,呵呵,明天我再做一个示例发上来你再看看吧。
  • #12楼  评论人:Wyf  评论时间:2012-4-13 15:09:51
  • [(引用)怎么实时获取复选框列的状态呢,htc里面不能在点击的时候获取,onchange和onclick都不行] 你看看这个,在SmartGrid控件中响应CheckBoxColumn列的选择事件示例 http://www.lmwlove.com/ac/ID805,看能不能实现你的需求。
  • #13楼  评论人:匿名  评论时间:2012-4-16 10:09:30
  • 上面一个问题已经解决,谢谢。 请问lz怎么实现两列联动,比如省市联动,那么在市获得焦点的时候,怎么让市里面的下拉只有相应省的下属市。
  • #14楼  评论人:Wyf  评论时间:2012-4-16 10:13:33
  • 还是在Htc中处理,在上列中我们不已经可以获到CheckBoxColumn的点击事件了吗?同样方法可以获取到DropDownList列的焦点事件,然后在该事件中给另一个DropDownList赋值。
  • #15楼  评论人:匿名  评论时间:2012-4-16 11:10:53
  • 这个是相当于给自己赋值哦,给另外一个赋值示例里面已经有了。 现在是比如 广东 珠海 深圳 。。。 在保存之后表格不能编辑,显示广东 珠海,那么我再点编辑,表格可以编辑的状态下,直接点击珠海列,这里应该只是显示广东省下面的市。而且默认这个值选择是珠海,所以这个下拉项目不能预先绑定。
  • #16楼  评论人:Wyf  评论时间:2012-4-16 11:23:46
  • 这个是一样的,你可用另一个隐藏字段来存储"广东"这个标识,然后在用户点击"珠海"这个栏位时,再根据隐藏字段"广东"来重新初始化"珠海"这个栏位的下拉项。
  • #17楼  评论人:匿名  评论时间:2012-4-16 11:30:48
  • 恩,看看重新初始化能不能保留住原来的值,不然只能先记录再赋值了。谢谢lz了。
  • #18楼  评论人:匿名  评论时间:2012-4-19 11:45:10
  • lz,复选列如果绑定0会是选中状态,这个怎么处理呢,数据库字段是bool。
  • #19楼  评论人:匿名  评论时间:2012-4-19 11:46:05
  • lz,复选列如果绑定0会是选中状态,这个怎么处理呢,数据库字段是bool。
  • #20楼  评论人:Wyf  评论时间:2012-4-19 11:50:00
  • 最简单的方法,在绑定前,先处理一下数据源,将数据源中的0改为"false"
  • #21楼  评论人:匿名  评论时间:2012-6-19 10:35:45
  • 这个SmartGrid教程比官方的还完整啊,谢谢lz了
发表评论:
留言人:
内  容:
请输入问题 79+63=? 的结果(结果是:142)
结  果: