asp.Netにおけるgridviewのバインドデータソースの削除・変更を実現
gridviewは比較的柔軟で、excelのような使い方があり、表に直接追加したり、修正したりすることができます.セルデータ比較セグメントの表は使いやすいです.
参考になるhttps://blog.csdn.net/yingzhaom/article/details/50614599
これに基づいてボタンをクリックしてモードボックスをポップアップして操作しました.このようなニーズがあれば、私のコードを参照してください.
まず、データ・ソースのバインドから開始します.
ページのロード時にデータをバインドします(データベース接続をカプセル化できます.後で何度も使用します):
フロントエンドコード(テーブル内のカラムのdataFieldはクエリのカラム名に対応):
ページングバックグラウンドコード:
フロントフレームコード:
バックグラウンドのバウンドと編集コード(中のdaoとimplはカプセル化されたデータベース接続と更新されたコードであり、TagInfoはカプセル化されたエンティティクラスである):
Alert弾枠コード:
バックグラウンドコードを削除するには
新しいのは編集と同じようにコードを入れません.
参考になるhttps://blog.csdn.net/yingzhaom/article/details/50614599
これに基づいてボタンをクリックしてモードボックスをポップアップして操作しました.このようなニーズがあれば、私のコードを参照してください.
まず、データ・ソースのバインドから開始します.
ページのロード時にデータをバインドします(データベース接続をカプセル化できます.後で何度も使用します):
//
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database= ;Uid= ;Pwd= ";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// table
bind_gv();
}
}
protected void bind_gv()
{
string sqlstr = "select * from ";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, " ");
gvTag.DataSource = myds;
gvTag.DataKeyNames = new string[] { "tid" };
gvTag.DataBind();
sqlcon.Close();
}
フロントエンドコード(テーブル内のカラムのdataFieldはクエリのカラム名に対応):
:
ページングバックグラウンドコード:
protected void gvTag_PageIndexChanging(object sender, System.Web.UI.WebControls.GridViewPageEventArgs e)
{
gvTag.PageIndex = e.NewPageIndex;
bind_gv();
}
protected void gvTag_DataBound(object sender, EventArgs e)
{
// 。
GridViewRow pagerRow = gvTag.BottomPagerRow;
if (pagerRow != null)
{
// Label 。
Label pageLabel = (Label)(pagerRow.Cells[0].FindControl("lblCurrentPage"));
// 、 、 、 。
ImageButton imgBtnFirst =
(ImageButton)(pagerRow.Cells[0].FindControl("imgBtnFirst"));
ImageButton imgBtnPrev =
(ImageButton)(pagerRow.Cells[0].FindControl("imgBtnPrev"));
ImageButton imgBtnNext =
(ImageButton)(pagerRow.Cells[0].FindControl("imgBtnNext"));
ImageButton imgBtnLast =
(ImageButton)(pagerRow.Cells[0].FindControl("imgBtnLast"));
// 、 、 、 。
if (gvTag.PageIndex == 0)
{
imgBtnFirst.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
imgBtnPrev.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
}
else if (gvTag.PageIndex == gvTag.PageCount - 1)
{
imgBtnLast.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
imgBtnNext.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
}
else if (gvTag.PageCount <= 0)
{
imgBtnFirst.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
imgBtnPrev.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
imgBtnNext.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
imgBtnLast.Style.Add(HtmlTextWriterStyle.Visibility, "hidden");
}
if (pageLabel != null)
{
// 。
int currentPage = gvTag.PageIndex + 1;
pageLabel.Text = currentPage.ToString() +
" / " + gvTag.PageCount.ToString();
}
}
}
フロントフレームコード:
バックグラウンドのバウンドと編集コード(中のdaoとimplはカプセル化されたデータベース接続と更新されたコードであり、TagInfoはカプセル化されたエンティティクラスである):
//
protected void Modify_Click(object sender, EventArgs e)
{
LinkButton link = sender as LinkButton;
int index = Convert.ToInt32(link.CommandArgument);
TagInfoDao tag = new TagInfoDaoImpl();
TagInfo tagInfo = tag.findByTid(index);
//
TidEdit.Text = index.ToString();
TagEdit.Text = tagInfo.groupCode +","+ tagInfo.elementCode;
TagNameEdit.Text = tagInfo.tagName;
NotesEdit.Text = tagInfo.notes;
//
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
scriptManager.RegisterStartupScript(typeof(string), "", "$('#editModal').modal('show');", true);
//
VRInfoDao vr = new VRInfoDaoImpl();
List vrList = vr.findVRInfo("");
ddlVREdit.DataSource = vrList;
ddlVREdit.DataTextField = "code";
ddlVREdit.DataValueField = "VID";
ddlVREdit.DataBind();
ddlVREdit.SelectedIndex = tagInfo.vid - 1;
}
//
protected void SaveEdit_Click(object sender, EventArgs e)
{
TagInfo tag = new TagInfo();
tag.tid = Convert.ToInt32(TidEdit.Text);
tag.groupCode = TagEdit.Text.Split(',')[0];
tag.elementCode = TagEdit.Text.Split(',')[1];
tag.tagName = TagNameEdit.Text;
tag.notes = NotesEdit.Text;
tag.vid = Convert.ToInt32(ddlVREdit.SelectedValue);
TagInfoDao tagDao = new TagInfoDaoImpl();
if (tagDao.updata(tag))
{
Alert(" !");
}
else
{
Alert(" !");
}
bind_gv();
}
Alert弾枠コード:
public void Alert(string str_Message)
{
ClientScriptManager scriptManager = ((Page)System.Web.HttpContext.Current.Handler).ClientScript;
scriptManager.RegisterStartupScript(typeof(string), "", "alert('" + str_Message + "');", true);
}
バックグラウンドコードを削除するには
//
protected void Delete_Click(object sender, EventArgs e)
{
LinkButton link = sender as LinkButton;
int index = Convert.ToInt32(link.CommandArgument);
TagInfoDao tag = new TagInfoDaoImpl();
if (tag.delete(index))
{
//
Alert(" ");
}
else
{
//
Alert(" ");
}
bind_gv();
}
新しいのは編集と同じようにコードを入れません.