C# 是否根据GridView中的数据绑定更改ASP按钮的属性?

C# 是否根据GridView中的数据绑定更改ASP按钮的属性?,c#,.net,asp.net,C#,.net,Asp.net,我正在使用GridView开发一个表单,从SQLExpress数据库中提取数据。最后一列是我希望能够根据绑定到该列的数据更改的按钮 该按钮将用作“启用/禁用”切换。基本上,如果用户已启用,我希望按钮显示“Disable”,并使OnClientClick属性指向Disable函数;如果用户被禁用,我希望按钮显示为“启用”,并指向启用功能 我的google fu今天很弱,希望大家能帮上忙。提前感谢。使用OnRowDatabound事件(假设.net 2.0以上版本)作为起点。然后,您将可以访问该行的

我正在使用GridView开发一个表单,从SQLExpress数据库中提取数据。最后一列是我希望能够根据绑定到该列的数据更改的按钮

该按钮将用作“启用/禁用”切换。基本上,如果用户已启用,我希望按钮显示“Disable”,并使OnClientClick属性指向Disable函数;如果用户被禁用,我希望按钮显示为“启用”,并指向启用功能


我的google fu今天很弱,希望大家能帮上忙。提前感谢。

使用OnRowDatabound事件(假设.net 2.0以上版本)作为起点。然后,您将可以访问该行的行数据,并可以根据需要更改按钮。我会看看是否能为您找到一个具体的例子。

试试这个,我假设您的启用/禁用是数据库中的一个位值

<asp:TemplateField>
  <ItemTemplate>
    <asp:Button runat="server" ID="btn" Text='<%# "1".Equals(Eval("Enabled").ToString()) ? "Enabled" : "Disabled" %>' OnClick='<%# "1".Equals(Eval("Enabled").ToString()) ? "DISABLE_METHOD" : "ENABLE_METHOD" %>' />
  </ItemTemplate>
</asp:TemplateField>

在用于绑定网格的数据集中有文本“Enabled/Disabled”

然后,利用模板列,将按钮定义为:

<asp:button text='<%# Eval("IsEnabled") %>' runat=server commandname='<%# Eval("IsEnabled") %>' commandargument ='<%# Eval("UserId") %>' id="myButton" />

在这种情况下,您仍然需要为命令参数提供用户ID。然后在处理后重新绑定整个网格。+1-我打赌IsEnabled在数据库中有一点,你可能想重做你的CommandNamelogic@rm-由于这个特殊原因,我指定从数据集中返回文本。在SQL中,可以通过以下方式将位更改为字符串:CASE当IsEnabled=1时,然后“禁用”或“启用”结束为IsEnabled。这也比代码中的IF语句快。当您得到答案时,您没有任何编辑答案的权限。你所需要做的就是将答案标记为已接受。
dim btn as button = e.item.findcontrol("myButton")
select case e.Command
  case "Enable"
    myDisableFunction(e.commandargument)
    btn.Text = 'Disable'
    btn.Cmmand = 'Disable'
  case "Disable"
    myEnableFunction(e.commandArgument)
   btn.Text = "Enable"
    btn.Commandname="Enable"
end case