我正在使用GridView处理表单,从SQL Express数据库中提取数据。最后一列将是一个Button,我希望能够根据绑定到该列的数据进行更改。
该按钮将用作“启用/禁用”切换。基本上,如果用户启用,我希望按钮说“禁用”并让OnClientClick属性指向禁用功能;如果用户被禁用,我希望按钮显示“启用”并指向启用功能。
我的google-fu今天很弱,希望你们都能得到一些帮助。提前谢谢。
答案 0 :(得分:2)
试试这个,我假设你的启用/禁用是DB中的位值
<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>
答案 1 :(得分:2)
在用于绑定网格的数据集中使用“启用/禁用”文本。
然后,利用模板列,按如下方式定义按钮:
<asp:button text='<%# Eval("IsEnabled") %>' runat=server commandname='<%# Eval("IsEnabled") %>' commandargument ='<%# Eval("UserId") %>' id="myButton" />
然后,在网格的RowCommand事件中,执行以下操作:
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
答案 2 :(得分:1)
使用OnRowDatabound事件(假设.net 2.0以上)作为起点。然后,您可以访问该行的行数据,并可以根据需要更改按钮。我会看看能否为你挖掘一个具体的例子。