用JS修改GridView里TemplateField模板页的Label控件的值后又自动刷新变回来了<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function modify(obj){
document.getElementById(obj).innerHTML = "100";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<asp:Button ID="Button1" runat="server" Text="增加列" OnClick="Button1_Click" />
<br />
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="测试列">
<ItemTemplate>
<asp:Label ID="labName" runat="server" Text='<%# bind("Count")%>'</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="功能">
<ItemTemplate>
<asp:Button ID="modify" runat="server" Text="修改" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
后台代码//页面加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.GridView1.DataSource = null;
this.GridView1.DataBind();
}
}
//在GridView里添加一个空行
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Count");
dt.Rows.Add(dt.NewRow());
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button btn = (Button)e.Row.FindControl("modify");
Label lab = (Label)e.Row.FindControl("labName");
btn.Attributes.Add("onclick", "modify('"+lab.ClientID+"');");
}
}
<head runat="server">
<title></title>
<script type="text/javascript">
function modify(obj){
document.getElementById(obj).innerHTML = "100";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<asp:Button ID="Button1" runat="server" Text="增加列" OnClick="Button1_Click" />
<br />
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="测试列">
<ItemTemplate>
<asp:Label ID="labName" runat="server" Text='<%# bind("Count")%>'</asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="功能">
<ItemTemplate>
<asp:Button ID="modify" runat="server" Text="修改" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
后台代码//页面加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.GridView1.DataSource = null;
this.GridView1.DataBind();
}
}
//在GridView里添加一个空行
protected void Button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Count");
dt.Rows.Add(dt.NewRow());
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button btn = (Button)e.Row.FindControl("modify");
Label lab = (Label)e.Row.FindControl("labName");
btn.Attributes.Add("onclick", "modify('"+lab.ClientID+"');");
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货