【问题标题】:Setting HyperLink value for last item in GridView为 GridView 中的最后一项设置超链接值
【发布时间】:2014-11-11 18:03:38
【问题描述】:

我有一个 GridView 购物篮(称为 BasketGrid),其中包含用户选择购买的产品列表。我正在尝试创建一个名为“编辑选项”的超链接,允许用户在需要时返回产品页面来编辑项目选项。我所拥有的主要是工作,但 GridView 的“编辑选项”链接中的最后一项从未设置,无论篮子中的最后一项是什么。除了这个问题,该功能似乎按我想要的方式工作。我错过了什么?

这是设置“编辑选项”超链接的函数:

protected string BuildLink (object dataItem)
    {
        string ProductLink = "";
        int rowIndex = 0;
        foreach (GridViewRow basketRow in BasketGrid.Rows)
        {
            int basketItemId = (int)BasketGrid.DataKeys[rowIndex].Value;
            int itemIndex = _Basket.Items.IndexOf(basketItemId);
            if ((itemIndex > -1))
            {
                BasketItem item = _Basket.Items[itemIndex];
                if ((item.OrderItemType == OrderItemType.Product))
                {
                    HyperLink optionsLink = (HyperLink)basketRow.FindControl("EditProdOpts");
                    if (optionsLink != null)
                    {
                        optionsLink.NavigateUrl = string.Format("~/Admin/orders/Create/CreateOrderAddProduct.aspx?Action=Edit&UID={0}&LineID={1}&ProdId={2}", _UserId, item.BasketItemId, item.ProductId);
                    }
                }
                rowIndex++;
            }  
        }
        return ProductLink;
    }

这是 GridView 中包含“编辑选项”超链接的行:

 <ItemTemplate>
      <uc:BasketItemDetail ID="BasketItemDetail1" runat="server" BasketItem="<%# Container.DataItem %>" LinkProducts="false" /><br />
       <asp:PlaceHolder ID="EditOptPanel" runat="server" Visible='<%# ShowOptionsLink(Container.DataItem) %>'>
           <asp:HyperLink ID="EditProdOpts" runat="server" Text="Edit Options" NavigateUrl='<%# BuildLink(Container.DataItem) %>' />
        </asp:PlaceHolder>
  </ItemTemplate>

【问题讨论】:

  • 只是一些问题:为什么不更新“ProductLink”变量?为什么 rowIndex 变量只在嵌套的 if 内递增?
  • 啊,现在我明白我的错误了。我没有像我应该设置的那样设置 ProductLink 变量。感谢您指出这一点——老实说,我在那里完全忘记了一段时间。
  • 我会发布答案然后=)

标签: c# gridview hyperlink


【解决方案1】:

这个评论让 OP 解决了他的问题,他实际上并没有设置 ProductLink 变量

只是一些问题:为什么不更新“ProductLink”变量?为什么 rowIndex 变量只在嵌套的 if 内递增?

【讨论】:

  • 这没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
  • @Р̀СТȢѸ́ФХѾЦЧШЩЪЫЬѢѤЮѦѪѨѬѠѺѮѰѲѴ 谢谢,我会编辑答案,我只是复制了让他解决问题的评论,我会添加解释。
猜你喜欢
  • 1970-01-01
  • 2021-05-13
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多