时间:2021-05-28
复制代码 代码如下:
/// <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;
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了asp.net中的GridView分页问题。分享给大家供大家参考。具体分析如下:在ASP.NET中,经常会使用到GridView的分页,一般情况下
“RadioButtonList”控件表示一个封装了一组单选按钮控件的列表控件。可以使用两种类型的ASP.NET控件将单选按钮添加到网页上:各个“RadioBu
RadioButtonList控件表示一个封装了一组单选按钮控件的列表控件。可以使用两种类型的ASP.NET控件将单选按钮添加到网页上:各个RadioButto
由于公司需要php方面的项目开发,php刚刚入门,在写按钮提交过程中,asp.net里的按钮事件更好些。先看下面的代码,做过asp.net开发的对上面的代码应该
以下是ASP.NET基本控件的数据绑定:webconfig:1.gridview:SqlConnectionconn=newSqlConnection(Sy