想加个推荐的功能,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){
这样也试过~也不行,问题出在哪?
} 展开
<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){
这样也试过~也不行,问题出在哪?
} 展开
1个回答
展开全部
<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 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询