您的位置:首页 > 其它

关于Gridview的一些知识和问题

2008-10-31 09:51 197 查看
1.关于绑定

GridView1.DataSource = table;(table为DataTable类型,也可绑定DataView、集合等类型)
GridView1.DataKeyNames = new string[] { "id" }; 设置主键

GridView1.DataBind();

2.行删除事件

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
GridViewRow r = GridView1.Rows[e.RowIndex];
string sql = "delete from tabookey where id=" + r.Cells[0].Text;
if (SqlHelper.Execute(sql))
{
if (GridView1.PageIndex == GridView1.PageCount - 1 && GridView1.Rows.Count % GridView1.PageSize == 1)//如果是最后一页只有一行
{
if (GridView1.PageIndex > 0)
{
GridView1.PageIndex -= 1;
}
}
BindGrid();
} }

3.行编辑事件

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Bind();

}

编辑后的更新和取消

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int id;
string keyword;
string endDate;
id = (int)GridView1.DataKeys[e.RowIndex].Value;
keyword = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].FindControl("TextBox1")).Text;
endDate = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].FindControl("TextBox2")).Text;
if (keyword != "")
{
List<SqlParameter> list = new List<SqlParameter>();
SqlParameter p = new SqlParameter("@id", id);
list.Add(p);
p = new SqlParameter("keyword", keyword);
list.Add(p);
p = new SqlParameter("deadline", DateTime.Parse(endDate));
list.Add(p);
SqlHelper.Execute("updatekeyvip", list);
}
GridView1.EditIndex = -1;
Bind();

}

取消编辑
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
Bind();
}

4.翻页事件

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
Bind();
}

5.选择行改变事件

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
string sql="update comvip set ifdisplay=";
LinkButton l = (LinkButton)GridView1.SelectedRow.Cells[1].FindControl("LinkButton1");
if(l.Text=="屏蔽")
{
sql+="0";
} else{
sql+="1";
}
sql += " where id = " + GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString();
if (SqlHelper.Execute(sql))
{
loadGridView(SQLSTR);
this.Page.RegisterClientScriptBlock("", "<script>alert('" + l.Text + "成功');</script>");
}
}

6.行绑定事件(隐藏列或者显示方面在此事件中)

if (e.Row.RowType == DataControlRowType.DataRow)
{

Label label1 = (Label)e.Row.FindControl("Label1");
LinkButton l = (LinkButton)e.Row.FindControl("LinkButton1");
int ifdisplay = int.Parse(label1.Text);
if (ifdisplay == 0)
{
l.Text = "显示";
l.CssClass = "a1";
}
else
{
l.Text = "屏蔽";
l.CssClass = "a3";
}

Label label2 = (Label)e.Row.FindControl("Label2");
LinkButton l2 = (LinkButton)e.Row.FindControl("LinkButton2");
int tuijian = int.Parse(label2.Text);
if (tuijian == 0)
{
l2.Text = "推荐";
l2.CssClass = "a1";
}
else
{
l2.Text = "取消";
l2.CssClass = "a3";
}

l2.CommandArgument = e.Row.RowIndex.ToString();//绑定CommandArgument为行号,方便事件中使用行索引

}
}

7.行command事件

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "tuijian")
{
int index = Convert.ToInt32(e.CommandArgument);
int comid = (int)GridView1.DataKeys[index].Value;

// Response.Redirect("adminkeyvip.aspx?id=" + comid);
string sql = "update comvip set tuijian=";
LinkButton l = (LinkButton)GridView1.Rows[index].Cells[0].FindControl("LinkButton2");
if (l.Text == "取消")
{
sql += "0";
}
else
{
sql += "1";
}
sql += " where id = " + comid;
if (SqlHelper.Execute(sql))
{
loadGridView(SQLSTR);
this.Page.RegisterClientScriptBlock("", "<script>alert('" + l.Text + "成功');</script>");
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: