发布于 2016-05-31 09:06:37 | 76 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

ASP.NET

ASP.NET 是.NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。 指 Active Server Pages(动态服务器页面) ,运行于 IIS(Internet Information Server 服务,是Windows开发的Web服务器)之中的程序 。


asp.net 扩展GridView 增加单选按钮列的代码

/// <summary> 
/// 单选按钮列 
/// </summary> 
/// <remarks> 
/// 如果没有设置GroupName,则使用GridView的ID作为GroupName 
/// 如果没有设置DataField,则使用RowIndex作为Value 
/// 允许设置DataFormatString格式化数据 
/// </remarks> 
[AspNetHostingPermission(SecurityAction.Demand, 
Level = AspNetHostingPermissionLevel.Minimal)] 
public class RadioButtonSelectField : DataControlField 
{ 
/// <summary> 
/// 单选按钮组名,默认去GridView的ClientID 
/// </summary> 
[Description("单选按钮组名,默认去GridView的ClientID")] 
public string RadioButtonGroupName 
{ 
get 
{ 
return this.ViewState["RadioButtonGroupName"] as string; 
} 
set 
{ 
this.ViewState["RadioButtonGroupName"] = value; 
} 
} 

/// <summary> 
/// 单选按钮的样式 
/// </summary> 
[Description("单选按钮的样式")] 
public string RadioButtonCssClass 
{ 
get 
{ 
return this.ViewState["RadioButtonCssClass"] as string; 
} 
set 
{ 
this.ViewState["RadioButtonCssClass"] = value; 
} 
} 

/// <summary> 
/// 要绑定的数据表达式 
/// </summary> 
[Description("要绑定的数据表达式")] 
public string DataField 
{ 
get 
{ 
return this.ViewState["DataField"] as string; 
} 
set 
{ 
this.ViewState["DataField"] = value; 
} 
} 

/// <summary> 
/// 要绑定的数据表达式格式 
/// </summary> 
[Description("要绑定的数据表达式格式")] 
public string DataFormatString 
{ 
get 
{ 
return this.ViewState["DataFormatString"] as string; 
} 
set 
{ 
this.ViewState["DataFormatString"] = value; 
} 
} 

/// <summary> 
/// return self; 
/// </summary> 
/// <returns></returns> 
protected override DataControlField CreateField() 
{ 
return this; 
} 

/// <summary> 
/// 添加控件 
/// </summary> 
/// <param name="cell"></param> 
/// <param name="cellType"></param> 
/// <param name="rowState"></param> 
/// <param name="rowIndex"></param> 
public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex) 
{ 
base.InitializeCell(cell, cellType, rowState, rowIndex); 

if (cellType == DataControlCellType.DataCell) 
{ 
var literal = new Literal(); 

if (string.IsNullOrEmpty(this.DataField)) 
{ 
SetLiteralHtml(literal, rowIndex.ToString()); 
} 
else 
{ 
literal.DataBinding += new EventHandler(literal_DataBinding); 
} 

cell.Controls.Add(literal); 
} 
} 

void literal_DataBinding(object sender, EventArgs e) 
{ 
if (string.IsNullOrEmpty(this.DataField)) 
{ 
return; 
} 

var literal = sender as Literal; 
if (literal == null) 
{ 
return; 
} 
var cell = literal.Parent as TableCell; 
if (cell == null) 
{ 
return; 
} 
var container = literal.NamingContainer; 
if (container == null) 
{ 
return; 
} 
bool foundDataItem; 
var dataItem = DataBinder.GetDataItem(container, out foundDataItem); 
if (!foundDataItem) 
{ 
return; 
} 

var dataValue = null as string; 
if (this.DataField.Contains('.')) 
{ 
dataValue = DataBinder.Eval(dataItem, this.DataField, this.DataFormatString); 
} 
else 
{ 
dataValue = DataBinder.GetPropertyValue(dataItem, this.DataField, this.DataFormatString); 
} 

SetLiteralHtml(literal, dataValue); 
} 

private void SetLiteralHtml(Literal literal, string dataValue) 
{ 
var groupName = this.RadioButtonGroupName; 
if (string.IsNullOrEmpty(groupName)) 
{ 
groupName = literal.Parent.Parent.Parent.Parent.ID; 
} 
var cssClass = this.RadioButtonCssClass; 
if (!string.IsNullOrEmpty(cssClass)) 
{ 
cssClass = string.Format("class=\"{0}\"", this.RadioButtonCssClass); 
} 

var selected = false; 
var selectedValue = literal.Page.Request[groupName]; 
if (string.IsNullOrEmpty(selectedValue) == false) 
{ 
if (string.Compare(selectedValue, dataValue, true) == 0) 
{ 
selected = true; 
} 
} 

var rbHtml = string.Format("<input type=\"radio\" name=\"{0}\" value=\"{1}\" {2} {3} />", 
groupName, 
dataValue, 
cssClass, 
selected ? "checked" : string.Empty); 

literal.Text = rbHtml; 
} 
}


最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务