В моем виде сетки отображается более одного столбца ProductName и столбца ProductID. Все, что я хочу показать, это кликабельный столбец Product Name. Может кто-нибудь помочь мне выяснить, какой код исключить?
<asp:Content ID="Content2" ContentPlaceHolderID="body" Runat="Server">
<br /><br /><br />
<asp:linkbutton id="btnAll" runat="server" text="ALL" onclick="btnAll_Click" />
<asp:repeater id="rptLetters" runat="server" datasourceid="dsLetters">
<headertemplate> | </headertemplate>
<itemtemplate>
<asp:linkbutton id="btnLetter" runat="server"
onclick="btnLetter_Click" text='<%#Eval("Letter")%>' />
</itemtemplate>
<separatortemplate> | </separatortemplate>
</asp:repeater>
<asp:sqldatasource id="dsLetters" runat="server" connectionstring="<%$ ConnectionStrings:ProductsConnectionString %>"
selectcommand="SELECT DISTINCT LEFT(ProductName, 1) AS [Letter] FROM [Product]">
</asp:sqldatasource>
<asp:gridview id="gvProducts" runat="server" datakeynames="ProductID"
datasourceid="dsProductLookup" style="margin-top: 12px;">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="ProductID"
DataNavigateUrlFormatString="Product/Default.aspx?ID={0}"
DataTextField="ProductName" HeaderText="Product Name"
SortExpression="ProductName" />
</Columns>
</asp:gridview>
<asp:sqldatasource id="dsProductLookup" runat="server"
connectionstring="<%$ ConnectionStrings:ProductsConnectionString %>"
selectcommand="SELECT ProductID, ProductName FROM [Product] ORDER BY [ProductName]">
</asp:sqldatasource>
</asp:Content>
CodeBehind:
Protected Sub btnAll_Click(sender As Object, e As EventArgs)
gvProducts.DataBind()
End Sub
Protected Sub btnLetter_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim btnLetter As LinkButton = TryCast(sender, LinkButton)
If btnLetter Is Nothing Then
Return
End If
dsProductLookup.SelectCommand = [String].Format("SELECT ProductID, ProductName
FROM [Product] WHERE ([ProductName] LIKE '{0}%') ORDER BY [ProductName]",
btnLetter.Text)
End Sub
![enter image description here](https://i.stack.imgur.com/8UYRB.png)