1、对GridView通用UpdateSQL生成函数,对单表有效
public bool GetUpdateRow(GridView gv, int RowIndex,out DALDataRow drRow,out DALDataRow drKeys)
{
drRow = GetDataRow(gv, RowIndex);
drKeys = GetDataKeys(gv, RowIndex);
if (drRow == null||drKeys==null)
{
return false;
}//if
return true;
}
private DALDataRow GetDataKeys(GridView gv, int RowIndex)
{
DALDataRow drKeys = new DALDataRow();
var KeyNames = gv.DataKeyNames;
var Keys = gv.DataKeys[RowIndex].Values;
for( int i=0; i<KeyNames.Length;i++)
{
drKeys.Add(KeyNames[i].ToLower(), Keys[i].ToString());
}//for( int i=
return drKeys;
}
public DALDataRow GetDataRow(GridView gv,int RowIndex)
{
List<string> DataFields = new List<string>();
List<string> Values = new List<string>();
DALDataRow dr = new DALDataRow();
foreach (DataControlField c in gv.Columns)
{
if (c is BoundField)
{
DataFields.Add(((BoundField)c).DataField.ToString().ToLower());
}
if (c is TemplateField)
{
TemplateField t = c as TemplateField;
}
}
foreach (TableCell r in gv.Rows[RowIndex].Cells)
{
if (r.Controls[0] is TextBox)
{
Values.Add(((TextBox)(r.Controls[0])).Text);
}
}
if (DataFields.Count!=Values.Count
||DataFields.Count < 1)
{
return null;
}//if
for (int i = 0; i < DataFields.Count;i++ )
{
dr.Add(DataFields[i], Values[i].ToString());
}//for
return dr;
}
2、GridView每几行增加一空行的方法(转)
经常见到文章列表中,每隔五行或十行下面有一空行,这样当阅读网站内容时,会不觉得太压抑,其实这个GridView也可以做到。
//1.首先GridView要定义OnRowDataBound事件,例如:OnRowDataBound="gv_RowDataBound"
//2.完善gv_RowDataBound方法体内容:
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex > 0 && (e.Row.RowIndex+1) % 5 == 0)
{
GridViewRow newRow = new GridViewRow(0,0,DataControlRowType.DataRow,DataControlRowState.Normal);
newRow.Cells.Add(new TableCell());
newRow.Cells[0].ColumnSpan = e.Row.Cells.Count;
newRow.Cells[0].Text = " ";
this.gv.Controls[0].Controls.Add(newRow);
}
}