想加个推荐的功能,GridView 内的LinkButton无效?点击无反应?请问是哪里的问题?

<asp:GridViewID="gvArticleList"AutoGenerateColumns="False".....><Columns><asp:Templat... <asp:GridView ID="gvArticleList" AutoGenerateColumns="False" .....>
<Columns>
<asp:TemplateField HeaderText="操作" ShowHeader="False">
<ItemStyle HorizontalAlign="Center" Width="140px" />
<HeaderStyle HorizontalAlign="Center" Width="140px" />
<ItemTemplate>
<asp:LinkButton ID="ibtnTop" CommandName="SetTop" runat="server" Text='<%# Convert.ToInt32(Eval("is_top")) == 1 ? "取消置顶" : "设置置顶"%>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
///////
protected void gvArticleList_SelectedIndexChanged(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "SetTop")
{
int index = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
//通过下面的方式找到当前行主键
string id = gvArticleList.DataKeys[index].Value.ToString();
//然后做你的数据库操作
DataTable dt;
dt = GetDataTable("select is_top from [xxContent] where id=" + id.ToString());
if (dt.Rows.Count > 0)
{
if (dt.Rows[0]["is_top"].ToString() == "1")
ExecuteSql("update [xxContent] set is_top=0 where id=" + id);
else
ExecuteSql("update [xxContent] set is_top=1 where id=" + id);
}
}
}
gvArticleList_RowCommand(object sender, GridViewCommandEventArgs e){
这样也试过~也不行,问题出在哪?
}
展开
 我来答
QXYSLXH
推荐于2016-02-03 · TA获得超过247个赞
知道小有建树答主
回答量:194
采纳率:100%
帮助的人:127万
展开全部
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowCommand="GridView1_RowCommand">
                <Columns>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            ID
                        </HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval("ID") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            Name
                        </HeaderTemplate>
                        <ItemTemplate>
                            <%#Eval("Name") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <HeaderTemplate>caozuo</HeaderTemplate>
                        <ItemTemplate>
                            <asp:LinkButton runat="server" CommandArgument='<%#Eval("ID") %>' CommandName="Update">zhiding</asp:LinkButton>

                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
后台:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
        //获取点击行的主键
         int id = Convert.ToInt32(e.CommandArgument.ToString());
            if (e.CommandName == "Update")
            {
            //根据状态进行数据库操作
            }
            //重新查询数据并绑定
        }
更多追问追答
追问
谢谢~断点可以跳进来了~不过行号取得有点问题~
int id = Convert.ToInt32(e.CommandArgument.ToString()); 这一句报错了
输入字符串的格式不正确。
追答
报什么错了?你先断点看看e.CommandArgument.ToString()的值。
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式