题主用的什么控件?
Repeater,GridView还是DataGrid?文字切换一般是在服务器端读取数据库判断记录状态进行文字内容切换的。示例如下
<%@ Page Language="C#" AutoEventWireup="true"%>
<%@ Import Namespace="System.Data" %>
<script runat="server">
static DataTable dt=null;
protected void Page_Load(object sender, EventArgs e)
{
if (dt==null)
{
dt = new DataTable();
//测试数据,注意改为读取数据库
dt.Columns.Add("id");
dt.Columns.Add("settop");
dt.Rows.Add("1", "1");
dt.Rows.Add("2", "0");
dt.Rows.Add("3", "1");
dt.Rows.Add("4", "1");
dt.Rows.Add("5", "0");
//测试数据
gv1.DataSource = dt;
gv1.DataBind();
}
}
protected void SetTop_Click(object sender, EventArgs e)
{
var linkbtn = (LinkButton)sender;
var id = linkbtn.CommandName;
//根据id更新数据库记录,然后更新按钮文字
foreach (DataRow dr in dt.Rows)
if (dr[0].ToString() == id)
{
dr[1] = dr[1].ToString() == "1" ? "0" : "1";
linkbtn.Text = dr[1].ToString()=="1"?"取消置顶":"置顶";
break;
}
}
</script>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>测试</title>
</head>
<body><form runat="server">
<asp:GridView runat="server" ID="gv1" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField HeaderText="操作">
<ItemTemplate>
<asp:LinkButton runat="server" OnClick="SetTop_Click" CommandName='<%#Eval("id") %>'><%#Eval("settop").ToString()=="1"?"取消置顶":"置顶" %></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView></form>
</body>
</html>
给LinkButton设置Id,通过javascript改变显示的文本。
<asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
<script type="text/javascript">
document.getElementById('LinkButton1').Text = "点击连接";
}
</script>
你好,
你在哪里写的linkbutton? 应该是你的前端页面布局导致linkbutton 的名字自动更改了,不是名为LinkButton1 了。 可以给出你的前端代码吗?