【问题标题】:How to Pass parameter to SQlDataSource from gridview?如何从gridview将参数传递给SQlDataSource?
【发布时间】:2010-04-07 15:50:38
【问题描述】:

Gridview 有很多列和一个删除按钮。删除按钮是作为TemplateField的控件

<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 的 Delete 命令的存储过程需要两个参数。一个来自 DataKeyNames (RowID),另一个我想传递的是 btnDelete 的文本(真或假)。

我怎样才能实现它?

【问题讨论】:

    标签: c# asp.net gridview sqldatasource


    【解决方案1】:

    我建议在后面的代码中执行此操作。在 btnDelete 单击时,我将遍历 gridview 中的每一行并检查所有数据键名。一旦我找到你要删除的那个,你需要把它发回给你。您可以使用 linq、ado.net 之类的 orm 或直接的 sqlcmd。

    【讨论】:

      【解决方案2】:

      请参阅此代码。我实施并且工作正常

      <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 Fk_AgencyId=@CatalogAgencyId and fk_trackid=@TrackID) ">
                  <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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-03
        • 2014-04-14
        • 1970-01-01
        • 2018-08-19
        相关资源
        最近更新 更多