【问题标题】:Asp GridView make hyperlink column editableAsp GridView 使超链接列可编辑
【发布时间】:2016-04-07 07:01:35
【问题描述】:

我有 asp:GridView。我可以毫无问题地编辑所有列,除了这一列:

<asp:TemplateField>                                  
<ItemTemplate>                                            
    <asp:HyperLink ID="hyperlinkEdocs"  runat="server" Target="HyperLink" 
    HeaderText="Dopolnitve (eDocs)" 
    NavigateUrl='<%# String.Format("http://{0}", Eval("CUSTOMER").ToString()) %>' 
    Text='<%# Eval("CUSTOMER") %>'></asp:HyperLink>                                                                                                               
</ItemTemplate>                                        

我正在通过单击“编辑”链接来编辑列(这会触发列内容显示在文本框中)。 如何使该列可编辑,以便能够编辑和更新列中的超链接?

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:
     <asp:GridView runat="server" ID="gvrecords"  AutoGenerateColumns="false"
    HeaderStyle-BackColor="#7779AF" HeaderStyle-ForeColor="White" DataKeyNames="UserId">
    <Columns>
    <asp:TemplateField>
    <ItemTemplate>
    <asp:HyperLink ID="HyperLink1" Text='<%# Bind("Name") %>' NavigateUrl='<%# Bind("Name", "~/Images/{0}") %>' runat="server"/>
    </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="UserName" HeaderText="UserName" />
    <asp:BoundField DataField="FirstName" HeaderText="FirstName" />
    <asp:BoundField DataField="LastName" HeaderText="LastName" />
    <asp:BoundField DataField="Email" HeaderText="Email" />
    </Columns>
    </asp:GridView
    

    【讨论】:

    • 不起作用。当我点击“编辑”时,它仍然是不可编辑的。链接未更改为文本框。
    【解决方案2】:

    我不能 100% 确定您要做什么,因为我看不到您的代码,但您为什么不使用编辑项模板?

    【讨论】:

    • 这是我的问题 - 当我使用 BoundField 时,本地主机会附加在链接上。否则,我会简单地使用 BoundField 就是这样。 BoundField 会发生什么,例如:链接 www.google.com 变为(当我点击它时):mylocalhost.com/www.google.com -> 我怎样才能摆脱这个前置值?
    【解决方案3】:
    <asp:TemplateField HeaderStyle-Width="100px"   HeaderText = "ABC">
    
        <ItemTemplate>
    
            <asp:Label ID="label" runat="server"
    
                    Text='<%# Eval("id")%>'></asp:Label>
    
        </ItemTemplate>
    
        <EditItemTemplate>
    
            <asp:TextBox ID="textbox1" Width="100px" Height="50px" runat="server"
    
                Text='<%# Eval("id")%>'></asp:TextBox>
    
        </EditItemTemplate>
    
    
    
                                     <HeaderStyle Width="80px" HorizontalAlign="Center" VerticalAlign="Middle" />
    
    
    
                                     <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
    
    
    
    </asp:TemplateField>
    

    编辑链接点击打开文本框

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            grd_view();
        }
    

    【讨论】:

      猜你喜欢
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      相关资源
      最近更新 更多