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

    Gridview에는 많은 열과 삭제 버튼이 있습니다. 삭제 단추는 TemplateField 로의 컨트롤입니다.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 확인하십시오. 일단 당신이 삭제하고자하는 것을 발견하면, 그걸 다시 당신에게 보낼 필요가 있습니다. linq, ado.net 또는 직선 sqlcmd와 같은 orm을 사용할 수 있습니다.

    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> 
    
    관련 문제