点击LinkButton如何实现”置顶“和”取消置顶“的切换

img


后端点击方法显示LinkButton1不存在。Text也取不到

题主用的什么控件?
Repeater,GridView还是DataGrid?文字切换一般是在服务器端读取数据库判断记录状态进行文字内容切换的。示例如下

img

 <%@ 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>
 

img


有其他问题可以继续交流~

给LinkButton设置Id,通过javascript改变显示的文本。

<asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>

<script type="text/javascript">
document.getElementById('LinkButton1').Text = "点击连接";
}
</script>


你好,
你在哪里写的linkbutton? 应该是你的前端页面布局导致linkbutton 的名字自动更改了,不是名为LinkButton1 了。 可以给出你的前端代码吗?

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632