c#
  • asp.net
  • gridview
  • sqldatasource
  • 2010-04-07 73 views 0 likes 
    0

    Gridview也有很多列和一个Delete按钮。删除按钮是控制作为模板列如何将参数传递给gridview中的SQlDataSource?

    <asp:TemplateField> 
    <ItemTemplate> 
        <asp:LinkButton ID="btnDelete" CommandName="Delete" Text='<%#  Eval("disabled").ToString()=="False" ? "Disabled" : "Enabled" %>' 
    OnClientClick="return confirm('Are you sure you want to take this action?');" 
    runat="server"></asp:LinkButton> 
    </ItemTemplate> 
    </asp:TemplateField> 
    

    现在相关的SqlDataSource的删除命令的存储过程,期待两个参数。一个来自DataKeyNames(RowID),另一个我想通过的是btnDelete(True或False)的Text。

    我该如何实现它?

    回答

    1

    我会推荐在后面的代码中执行它。在btnDelete上单击我将遍历gridview中的每一行并检查所有datakeynames。一旦我找到你想要删除的那个,你需要将它发回给你。您可以使用orq,如linq,ado.net或直接sqlcmd。

    0

    请参阅此代码。我执行并正常工作

    <asp:TemplateField HeaderText="Add" HeaderStyle-CssClass="grid_Title"> 
        <ItemTemplate> 
         <asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("TrackID")%>' /> 
         <asp:SqlDataSource ID="SqlDataSource_Projects" runat="server" ConnectionString="<%$ ConnectionStrings:SentricMusicFunctionalityConnectionString2 %>" 
              SelectCommand="select* from MassTraxCatProjects where [email protected] and [email protected]) "> 
          <SelectParameters> 
           <asp:SessionParameter DbType="Int32" DefaultValue="CatalogAgencyId" Name="CatalogAgencyId" 
                 SessionField="CatalogAgencyId" /> 
           <asp:ControlParameter DefaultValue="TrackID" Name="TrackID" ControlID="**HiddenField1**" /> 
          </SelectParameters> 
         </asp:SqlDataSource> 
         <asp:DropDownList ID="ddl_ProjectType" runat="server" DataSourceID="SqlDataSource_Projects" 
              Width="100px" DataTextField="ProjectName" DataValueField="ProjectId"> 
         </asp:DropDownList> 
        </ItemTemplate> 
    </asp:TemplateField> 
    
    相关问题