gpt4 book ai didi

具有多个项目的 ASP.NET Gridview 模板字段

转载 作者:行者123 更新时间:2023-12-04 18:18:56 24 4
gpt4 key购买 nike

我正在 ASP.net/VB.NET 中创建一个 Web 应用程序,但 GridView 控件存在问题。
目前,我使用数据库中的数据填充了 GridView,并且我还编写了更新按钮,以允许用户通过弹出的表单编辑任何必要的信息。

GridView with update buttons

如果可能的话,我想做的是在右侧两列中添加一个按钮(我已经在停靠时间列中添加了一个),如果设置了该列或将当前时间设置为该列,则该按钮将不可见.为这两列设置时间已经通过更新表单处理,但我的主管要求我尝试看看这是否可能。

这两个时间列是模板字段(因为我根据数据库中的实际时间格式化显示时间),并且我在 ItemTemplate 中为图片中的设置按钮添加了一个 asp 按钮。

这甚至可能吗?如果可以,我将如何在后面的代码中访问此按钮,以便我可以添加功能(设置时间并在列不为空时隐藏它)如果真的不可能有两个这样的项目在 TemplateField 中,我可以为这些按钮制作 2 个额外的列,但我认为这看起来会更干净。

任何投入将不胜感激。感谢您的时间。

最佳答案

是的,这是可能的,检查这个答案:

https://stackoverflow.com/a/11077709/1268570

基本上你需要处理 RowCommand来自网格的事件并使用命令识别每个按钮,您可以选择在绑定(bind)时为每个按钮添加参数,例如:

<asp:GridView runat="server" OnRowCommand="grdProducts_RowCommand" 
ID="grdProducts">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="false"
CommandName="myLink" CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>' Text="Button"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>

在后面的代码中:
    protected void grdProducts_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "myLink":
this.lblMessage.Text = e.CommandName + " " + e.CommandArgument + " " + DateTime.Now.ToString();

// referenece to the current row
var row = this.grdProducts.Rows[int.Parse(e.CommandArgument.ToString())];
break;
default:
break;
}
}

RowCommand 中更新网格后事件,您应该重新填充网格数据以呈现更改

关于具有多个项目的 ASP.NET Gridview 模板字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11110022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com