您的位置:首页 > 其它

初学者要知道的几个GridView用法

2009-09-07 13:36 381 查看
1.自增列

<asp:TemplateField HeaderText="自增列" FooterText="自增列">
<ItemTemplate>
<%# (Container.DataItemIndex+1).ToString()%>
</ItemTemplate>
</asp:TemplateField>


2.排序

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
if (sort == "Desc")
{
sort = "Asc";
}
else
{
sort = "Desc";
}
DataView dv = bll.getAllStudent().Tables[0].DefaultView;
dv.Sort = e.SortExpression + " "+sort;
this.GridView1.DataSource = dv;
this.GridView1.DataBind();

}


3.复选框全选js实现

//创建复选框
<asp:TemplateField HeaderText="<input type='checkbox' id='chk' name='chk' onclick='checkJs(this.checked);'  />全选" FooterText="全选">
<ItemTemplate>
<input type="checkbox" id="checkboxname" name="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' onclick='SingleCheckJs();' />
</ItemTemplate>
</asp:TemplateField>

//js处理事件
<mce:script language="javascript" type="text/javascript"><!--

// 判断多选是否与选中项(没有选中的返回false)
function slcNo_click()
{
if (document.form1.checkboxname.length)
{
for (var i=0;i<document.form1.checkboxname.length;i++)
{
if(document.form1.checkboxname[i].checked)
{
return true;
}
}
}
else
{
if(document.form1.checkboxname.checked)
{
return true;
}
}
alert("请选择后再操作!");
return false;
}

// 多选的全选与取消,此方法绑定在“全选”复选框上,<asp:TemplateField HeaderText="<input type='checkbox' id='chk' name='chk' onclick='checkJs(this.checked);'  />全选" FooterText="全选">

function checkJs(boolvalue)
{
if(document.all.checkboxname.length>1)
{
for(var i=0;i<document.all.checkboxname.length;i++)
{
document.all.checkboxname[i].checked = boolvalue;
}
}
else
document.all.checkboxname.checked = boolvalue;
}
// 当被全选时,单个选后把“全选”复选框取消选择,此方法绑定在每个复选框上,<input type="checkbox" id="checkboxname" name="checkboxname" value='<%# DataBinder.Eval(Container.DataItem, "id")%>' onclick='SingleCheckJs();' />

function SingleCheckJs()
{
var flag1=false;
var flag2=false;

if (document.form1.checkboxname.length)
{
for (var i=0;i<document.form1.checkboxname.length;i++)
{
if(document.form1.checkboxname[i].checked)
flag1 = true;
else
flag2 = true;
}
}
else
{
if(document.form1.checkboxname.checked)
flag1 = true;
else
flag2 = true;
}

if(flag1==true&&flag2==false)
document.getElementById("chk").checked = true;
else
document.getElementById("chk").checked = false;
}

// --></mce:script>

获取选中的值:
this.Label3.Text = Request.Form.Get("checkboxname");
结果:1101 ,1102 ,1104 ,1105 ,1103
处理:
string str="";
string []ckb=null;

str=Request.Form.Get("checkboxname");
ckb=str.Split(new char[]{','});

Response.Write("直接在页面中得到的值为:"+str+"<br>");

Response.Write("处理后存放在数组中,如下:<br>");
for(int i=0;i<ckb.Length;i++)
{
Response.Write("ckb["+i+"]的值为:"+ckb[i]+"<br>");
}
结果:
1101
1102
1104
1105
1103


4.鼠标经过改变行的颜色

//js代码
<mce:script type="text/javascript"><!--
if (!objbeforeItem)
{
var objbeforeItem=null;
var objbeforeItembackgroundColor=null;
}
function ItemOver(obj)
{
if(objbeforeItem)
{
objbeforeItem.style.backgroundColor = objbeforeItembackgroundColor;
}
objbeforeItembackgroundColor = obj.style.backgroundColor;
objbeforeItem = obj;
obj.style.backgroundColor = "#B9D1F3";
}

// --></mce:script>

//GridView事件
protected void gvNews_RowDataBound(object sender, GridViewRowEventArgs e)
{

//行头,尾,页码等过滤掉
if (e.Row.RowType.ToString() != DataControlRowType.Header.ToString()&&e.Row.RowType.ToString() != DataControlRowType.EmptyDataRow.ToString()&&e.Row.RowType.ToString() != DataControlRowType.Pager.ToString()&&e.Row.RowType.ToString()!= DataControlRowType.Footer.ToString() )
{
e.Row.Attributes["onmouseover"] = "ItemOver(this)";
}

}


5.加入单选框

<asp:TemplateField HeaderText="单选" FooterText="单选">
<ItemTemplate>
<input type="radio" id="RadioName" name="RadioName" value='<%# Eval("PK_Id")%>' />
</ItemTemplate>
</asp:TemplateField>

获取选中的值:
this.Label2.Text=Request.Form.Get("RadioName");
结果:1103


要更深入,推荐

关于GridView中自定义分页、单选、多选、排序、自增列的简单应用

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