亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Asp.net中怎么將Grid轉換為DataTable

發布時間:2021-07-16 13:55:37 來源:億速云 閱讀:149 作者:Leah 欄目:開發技術

Asp.net中怎么將Grid轉換為DataTable,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

 代碼如下:


#region ================GridView轉DataTable方法================
/// <summary>GridView轉DataTable 版權:求知域http://www.qqextra.com,http://blog.csdn.net/ls_man轉載請注明出處</summary>
/// <param name="gv">已綁定數據源的GridView</param>
/// <param name="showHideColumn">是否顯示隱藏列</param>
/// <returns>DataTable</returns>
public static DataTable GridViewToDataTable(GridView gv, Boolean showHideColumn)
{
//處理后的數據表
DataTable dt = new DataTable();
//記錄符合條件索引
int[] columnIndexs = new int[gv.HeaderRow.Cells.Count];
//記錄指示器從0開始
int columnIndexsCount = 0;
//初始化dt列名
for (int i = 0; i < gv.HeaderRow.Cells.Count; i++)
{
//獲取列名
string columnName = GetCellText(gv.HeaderRow.Cells[i]);
//string columnName = gv.HeaderRow.Cells[i].Text;
//列名非空//且可見
if (!string.IsNullOrEmpty(columnName))
{
//是否顯示隱藏列
if (gv.HeaderRow.Cells[i].Visible || showHideColumn)
{
//列名不允許重復
if (!dt.Columns.Contains(columnName))
{
//dt中新增一列
DataColumn dc = dt.Columns.Add();
//列名
dc.ColumnName = columnName;
//存儲的數據類型
dc.DataType = typeof(string);
//記錄符合條件的列索引
columnIndexs[columnIndexsCount] = i;
//記錄指示器+1
columnIndexsCount++;
}
}
}
}//版權:求知域http://www.qqextra.com,http://blog.csdn.net/ls_man轉載請注明出處
//GridView行復制到數組中便于操作
GridViewRow[] allGridViewRow = new GridViewRow[gv.Rows.Count];
gv.Rows.CopyTo(allGridViewRow, 0);
//數據添加到dt中
foreach (GridViewRow row in allGridViewRow)
{
//創建一行
DataRow dr = dt.NewRow();
//符合條件的列
for (int i = 0; i < columnIndexsCount; i++)
{
//獲取顯示文本并保存
dr[i] = GetCellText(row.Cells[columnIndexs[i]]);
}
//dt中增加此行
dt.Rows.Add(dr);
}
//返回處理后的數據
return dt;
}
/// <summary>GridView轉DataTable 版權:求知域http://www.qqextra.com,http://blog.csdn.net/ls_man轉載請注明出處</summary>
/// <param name="gv">未綁定數據源的GridView</param>
/// <param name="dtSource">GridView的數據源</param>
/// <param name="showHideColumn">是否顯示隱藏列</param>
/// <returns>DataTable</returns>
public static DataTable GridViewToDataTable(GridView gv, DataTable dtSource, Boolean showHideColumn)
{
//綁定原始數據到GridView
gv.DataSource = dtSource;
gv.DataBind();
//設置為不分頁
gv.AllowPaging = false;<SPAN >//版權:求知域http://www.qqextra.com,http://blog.csdn.net/ls_man轉載請注明出處
//GridView轉DataTable并返回
return GridViewToDataTable(gv, showHideColumn);
}
#endregion
#region ================私有工具方法================
/// <summary>獲取TableCell的顯示文本 版權:求知域http://www.qqextra.com,http://blog.csdn.net/ls_man轉載請注明出處</summary>
/// <param name="cell">TableCell</param>
/// <returns>string</returns>
private static string GetCellText(TableCell cell)
{
string cellText = cell.Text;
//常規文本(無控件)直接返回
if (!string.IsNullOrEmpty(cellText))
{
//返回顯示文本
return cellText.Replace("&nbsp;", "");
}
//遍歷cell中的控件
foreach (Control control in cell.Controls)
{
if (control != null && control is IButtonControl)
{
IButtonControl btn = control as IButtonControl;
cellText += btn.Text.Replace("\r\n", "").Trim();
continue;
}版權:求知域http://www.qqextra.com,http://blog.csdn.net/ls_man轉載請注明出處
if (control != null && control is ITextControl)
{
LiteralControl lc = control as LiteralControl;
if (lc != null)
{
//跳出到下一步foreach
continue;
}
ITextControl l = control as ITextControl;
cellText += l.Text.Replace("\r\n", "").Trim();
continue;
}
}
//返回顯示文本
return cellText;
}
#endregion
</SPAN>

看完上述內容,你們掌握Asp.net中怎么將Grid轉換為DataTable的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富蕴县| 恩施市| 南投县| 海伦市| 雅安市| 大姚县| 西宁市| 榆中县| 华宁县| 鲁甸县| 金川县| 深泽县| 钟山县| 临汾市| 凭祥市| 公主岭市| 育儿| 宁城县| 衡阳县| 留坝县| 西盟| 香河县| 云浮市| 双江| 康平县| 兴化市| 临沭县| 德保县| 云梦县| 邓州市| 渑池县| 五河县| 苏尼特左旗| 海阳市| 庆安县| 六盘水市| 金阳县| 安溪县| 米泉市| 腾冲县| 社旗县|