Как передать параметр в SQlDataSource из gridview? - PullRequest
0 голосов
/ 07 апреля 2010

В 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 (True или False).

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 07 апреля 2010

Я бы порекомендовал сделать это в коде позади.На btnDelete клик я бы перебрал каждую строку в вашем сеточном представлении и проверил бы все названия данных.Как только я найду тот, который вы хотите удалить, вам нужно будет отправить его обратно, дБ.Вы можете использовать orm, например linq, ado.net, или прямой sqlcmd.

0 голосов
/ 13 июня 2011

Пожалуйста, смотрите этот код. Я реализую и отлично работает

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...