
后端点击方法显示LinkButton1不存在。Text也取不到
题主用的什么控件?
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>
