单击按钮,使用SQLdatasource从Gridview获取标签中的参数

时间:2012-05-02 12:57:57

标签: c# asp.net gridview sqldatasource

我想要完成的是当我单击gridview中的按钮时,该特定行的值必须显示在textlabels lblID,lblName,...中 我只是不知道怎么做。
这是我的sqldatasource代码:

<asp:SqlDataSource ID="srcProd" runat="server"  
ConnectionString="<%$ ConnectionStrings:ConnDB %>"   
ProviderName="<%$ ConnectionStrings:ConnDB.ProviderName %>"   
SelectCommand="SELECT p.tProdID, p.tProdImage, p.tProdBeschrijving, m.tMerkNaam, m.tMerkImage,   p.tProdVerkoop FROM tblProducten AS p INNER JOIN tblMerken AS m ON p.tMerkID = m.tMerkID ORDER BY m.tMerkNaam">  
</asp:SqlDataSource>

这是我正在谈论的gridview的截图。 Here is a gridview screenshot

当我按下其中一个按钮时,我想要lblID中显示的参数ID。

感谢所有帮助,提示和提示。

2 个答案:

答案 0 :(得分:4)

为按钮分配CommandName(类似于“ShowDetails”左右)和CommandArgument(记录的ID)。点击该按钮现在会触发网格的RowCommand事件,并在CommandName中向您传递CommandArgumente。然后从您的数据库中获取记录并填充您的控件:

<asp:TemplateField>
    <ItemTemplate>
        <asp:Button runat="server" Text="Foo2" CommandArgument='<%# Eval("RowID") %>'
            CommandName="ShowDetails" />
    </ItemTemplate>
</asp:TemplateField>


protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    Debug.WriteLine("Command Handler");
}

答案 1 :(得分:1)

基本上这可以通过两种方式完成:

  1. 在按钮后面添加服务器端点击处理程序并更新UpdatePanel内的标签(这种情况下我们不需要回发)
  2. 在按钮的“OnClientClick”事件上添加一些javascript以设置此标签...此方法可以在GridView的bind方法中设置。
  3. 希望这有帮助。