怎样将LIST中的数据绑定到GridView,并实现增删改查
发布网友
发布时间:2022-04-07 23:34
我来回答
共4个回答
懂视网
时间:2022-04-08 03:55
<GridView.ColumnHeaderTemplate>
<DataTemplate>
<TextBlock FontFamily="Microsoft YaHei" FontSize="35" Foreground="White" Background="#333" Width="265" HorizontalAlignment="Center" TextAlignment="Center">
<TextBlock.Text>
<Binding/>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</GridView.ColumnHeaderTemplate>
另外还有一个重要的模板,就是CellTemplate,我们需要注意GridViewColumn用了DisplayMemberBinding 使得CellTemplate失效,所以如果需要自定义CellTemplate,那么一定要去掉 DisplayMemberBinding。 下面是一个具体的例子。
首先在资源中定义模板,
<DataTemplate x:Key="GridViewCellTemplate">
<TextBlock FontFamily="Microsoft YaHei" Height="60" FontSize="35" Foreground="White" Background="Gray" Width="265" HorizontalAlignment="Center" TextAlignment="Center">
<TextBlock.Text>
<Binding Path="DisplayName" Mode="TwoWay"/>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
然后在具体的列中引用,<GridViewColumn Header="投诉人" Width="Auto" CellTemplate="{StaticResource GridViewCellTemplate}" ></GridViewColumn>这样就可以实现对每一列的模板替换。
还有很重要的一部分就是在后台来讲数据库绑定到前台中,在xaml中我们使用了ItemsSource="{Binding}",那么在后台的代码中:
/// <summary>
/// 从数据库中获取数据并绑定到GridView上
/// </summary>
private void GetDataFromDataBase()
{
string connectStr = "Server=127.0.0.1;Database=test;Uid=root;Pwd=12345;Port=3306;CharSet=gbk;allow zero datetime=true";
string cmdStr = "select * from camerainfo order by pID desc limit 100";
DataBaseMySqlHander sql = new DataBaseMySqlHander(connectStr);
DataTable dt = sql.GetDataTable(cmdStr);
if (dt == null) return;
//创建一个DataTable的副本
DataTable tempTable = new DataTable();
tempTable = dt.Clone();//克隆 System.Data.DataTable 的结构
//包括所有 System.Data.DataTable 架构和约束。
if (tempTable != null && dt.Rows.Count>0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
tempTable.ImportRow(dt.Rows[i]);
}
}
//为ListView绑定数据源
this.dv= tempTable.DefaultView;
tempTable.Dispose();
}
以上部分就实现了简单的数据库的绑定,这部分也是非常重要的部分,我们在使用的时候可以按照上述步骤来进行绑定!
WPF将数据库和GridView绑定并更改GridView模板
标签:
热心网友
时间:2022-04-08 01:03
我的一个GridView操作文件,数据源是实体LIST,删改查功能都有了,你参考下
using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using lwf_MVC.CTRL;
using lwf_MVC.lwf_Normal;
using lwf_MVC.MODEL;
public partial class admin_news_edit : System.Web.UI.Page
{
public string icls_name = "cls_f_news";
//不同级数系列区别在于iWhere
public string iWhere = " 1 = 1 and ENG = " + WEB.GQ("ENG", "0") + " and TID1 = " + WEB.GQ("SSS", "1") + " and 1 = 1";
public int getRecordCount()
{
cls_f_news if_news = (cls_f_news)CTRL.CreateModel(icls_name);
if_news.title = soKey.Text;
if_news.contents = soKey.Text;
if_news.WHERE = iWhere;
int i_recordcount = CTRL.getCount(if_news, "order by orderid,id desc");
return i_recordcount;
}
protected void Page_Load(object sender, EventArgs e)
{
if (WEB.getSession("userName") == null || WEB.getSession("userName") == "") JS.RD(System.Web.HttpUtility.UrlDecode("%e7%99%bb%e9%99%86%e8%b6%85%e6%97%b6%2c%e8%af%b7%e9%87%8d%e6%96%b0%e7%99%bb").Trim(), "../login.aspx");
if (!IsPostBack)
{
AspNetPagerBin(1);
GridViewBin();
}
}
protected void AspNetPagerBin(int curr)
{
int i_recordcount = getRecordCount();
AspNetPager1.RecordCount = i_recordcount;
AspNetPager1.CurrentPageIndex = curr;
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
GridViewBin();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
GridViewBin();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int i_id = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
cls_f_news baseTableObj = (cls_f_news)CTRL.CreateModel(icls_name, i_id);
baseTableObj.title = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.ToString();
baseTableObj.newfrom = ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.ToString();
baseTableObj.addTime = DateTime.Parse(((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString());
baseTableObj.orderid = int.Parse(((TextBox)GridView1.Rows[e.RowIndex].FindControl("tb_orderid_b")).Text.ToString());
if (CTRL.Update(baseTableObj))
{
JS.alert(System.Web.HttpUtility.UrlDecode("%e4%bf%ae%e6%94%b9%e6%88%90%e5%8a%9f").Trim());
}
else
{
JS.alert(System.Web.HttpUtility.UrlDecode("%e7%bd%91%e7%bb%9c%e8%b6%85%e6%97%b6%ef%bc%8c%e8%af%b7%e9%87%8d%e6%96%b0%e5%86%8d%e8%af%95").Trim());
}
//====================================
GridView1.EditIndex = -1;
GridViewBin();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int i_id = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
cls_f_news baseTableObj = (cls_f_news)CTRL.CreateModel(icls_name, i_id);
if (CTRL.Delete(baseTableObj))
{
JS.alert(System.Web.HttpUtility.UrlDecode("%e8%ae%b0%e5%bd%95%e5%88%a0%e9%99%a4%e6%88%90%e5%8a%9f").Trim());
}
else
{
JS.alert(System.Web.HttpUtility.UrlDecode("%e7%bd%91%e7%bb%9c%e8%b6%85%e6%97%b6%ef%bc%8c%e8%af%b7%e9%87%8d%e6%96%b0%e5%86%8d%e8%af%95").Trim());
}
//====================================
GridView1.EditIndex = -1;
GridViewBin();
}
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
GridView1.EditIndex = -1;
GridView1.PageIndex = AspNetPager1.CurrentPageIndex;
GridViewBin();
}
protected void CheckBox_all_CheckedChanged(object sender, EventArgs e)
{
CheckBox_opp.Checked = false;
for (int i_i = 0; i_i <= GridView1.Rows.Count - 1; i_i++)
{
CheckBox ckb = (CheckBox)GridView1.Rows[i_i].FindControl("cb_selBoxs");
if (CheckBox_all.Checked)
{
ckb.Checked = true;
}
else
{
ckb.Checked = false;
}
}
}
protected void CheckBox_opp_CheckedChanged(object sender, EventArgs e)
{
CheckBox_all.Checked = false;
for (int i_i = 0; i_i <= GridView1.Rows.Count - 1; i_i++)
{
CheckBox ckb = (CheckBox)GridView1.Rows[i_i].FindControl("cb_selBoxs");
if (ckb.Checked)
{
ckb.Checked = false;
}
else
{
ckb.Checked = true;
}
}
}
protected void lb_delete_Click(object sender, EventArgs e)
{
for (int i_i = 0; i_i <= GridView1.Rows.Count - 1; i_i++)
{
CheckBox ckb = (CheckBox)GridView1.Rows[i_i].FindControl("cb_selBoxs");
if (ckb.Checked)
{
int i_id = int.Parse(GridView1.DataKeys[i_i].Value.ToString());
cls_f_news baseTableObj = (cls_f_news)CTRL.CreateModel(icls_name, i_id);
CTRL.Delete(baseTableObj);
}
}
int i_Pcount = getRecordCount();
if (AspNetPager1.CurrentPageIndex > i_Pcount)
{
AspNetPagerBin(i_Pcount);
}
else
{
AspNetPagerBin(AspNetPager1.CurrentPageIndex);
}
GridViewBin();
}
protected void lb_order_Click(object sender, EventArgs e)
{
for (int i_i = 0; i_i <= GridView1.Rows.Count - 1; i_i++)
{
TextBox tb = (TextBox)GridView1.Rows[i_i].FindControl("tb_orderid_a");
int i_id = int.Parse(GridView1.DataKeys[i_i].Value.ToString());
cls_f_news baseTableObj = (cls_f_news)CTRL.CreateModel(icls_name, i_id);
baseTableObj.orderid = int.Parse(tb.Text.ToString());
CTRL.Update(baseTableObj);
}
GridViewBin();
}
protected void bt_search_Click(object sender, EventArgs e)
{
AspNetPagerBin(1);
GridViewBin();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
int rowNum;
int id_i;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
}
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;
ViewState["sortExpression"] = sortExpression;
if (ViewState["ASC"].ToString() == "0")
{
ViewState["ASC"] = "1";
}
else
{
ViewState["ASC"] = "0";
}
AspNetPagerBin(1);
GridViewBin();
}
protected void GridViewBin()
{
CheckBox_all.Checked = false;
cls_f_news if_news = (cls_f_news)CTRL.CreateModel(icls_name);
if_news.title = soKey.Text;
if_news.contents = soKey.Text;
if_news.WHERE = iWhere;
int RecordCount;
int curP = Convert.ToInt32(AspNetPager1.CurrentPageIndex);
List<cls_f_news> iList_f_news = CTRL.getPageList(if_news, "order by orderid,id desc", AspNetPager1.PageSize, curP, out RecordCount).ConvertAll<cls_f_news>(delegate(lwf_MVC.MODEL.baseTable s) { return (cls_f_news)s; });
if (ViewState["ASC"] == null) ViewState["ASC"] = "-1";
if (ViewState["sortExpression"] == null) ViewState["sortExpression"] = "orderid";
if (ViewState["ASC"].ToString() == "-1")
{
iList_f_news.Sort(delegate(cls_f_news a, cls_f_news b) { return (new CaseInsensitiveComparer()).Compare(a.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(a, null), b.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(b, null)); });
}
else
{
if (ViewState["ASC"].ToString() == "1")
{
iList_f_news.Sort(delegate(cls_f_news a, cls_f_news b) { return (new CaseInsensitiveComparer()).Compare(a.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(a, null), b.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(b, null)); });
}
else
{
iList_f_news.Sort(delegate(cls_f_news a, cls_f_news b) { return (new CaseInsensitiveComparer()).Compare(b.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(b, null), a.GetType().GetProperty(ViewState["sortExpression"].ToString()).GetValue(a, null)); });
}
}
GridView1.DataSource = iList_f_news;
GridView1.DataKeyNames = new string[] { "id" };
GridView1.DataBind();
}
}
热心网友
时间:2022-04-08 02:21
给你个很笨的办法,在页面调用后台的方法,获取数据,显示
热心网友
时间:2022-04-08 03:56
装箱,装到datatable中去