2012-04-20 3 views
0
<asp:SqlDataSource ID="workHourListSqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:PlaningSystemConnectionString %>" 
    SelectCommand="SELECT * 
        FROM Date AS t1 FULL OUTER JOIN (SELECT * FROM WorkHoursEntry WHERE (WorkerID LIKE @WorkerID)) AS t2 ON t1.PKDate = t2.WorkDay 
        LEFT OUTER JOIN Worker AS t3 ON t2.WorkerID = t3.WorkerID 
        LEFT OUTER JOIN (SELECT * FROM Project WHERE ProjectID IN(@Project)) AS t4 ON t2.ProjectID = t4.ProjectID" 
    FilterExpression="YearMonth IN({0})"> 
    <FilterParameters> 
     <asp:ControlParameter ControlID="yearMonthFilterLabel" Name="YearMonth" 
        PropertyName="Text" Type="String" /> 
    </FilterParameters> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="WorkerIDLabel" Name="WorkerID" 
        PropertyName="Text" Type="String" /> 
     <asp:ControlParameter ControlID="projectFilterLabel" Name="Project" 
        PropertyName="Text" Type="String" /> 
    </SelectParameters> 
</asp:SqlDataSource> 

Приветствую, у меня есть проблемы с @Project ControlParameter, проблема, я не знаю, как передать несколько значений и метод FilterParameters не будет работать, как я хочу. Есть ли способ передать несколько переменных? (без использования C#).Набор SelectParameter для SqlDataSource SelectCommand с неизвестным числом переменных

projectFilterLabel.Text = 'aaa, bbb, ccc'; 

В основном то, что я хочу сделать, это выбрать все значения из таблицы Даты и присоединиться к ним с некоторыми значениями из проекта таблицы и вывода на DataList.

Любая помощь приветствуется, я только начал изучать ASP.NET

Спасибо.

ответ

0

В вашей форме asp создайте функцию javascript, чтобы обрабатывать открытие окна для вашего отчета. В этой функции установите значение параметра (var pPassParm) в textbox.text (скрыто в вашей родительской форме) и передайте это значение с открытием окна (/reportfolder/report.asx?pPassparm)

О вашем коде выполнения , создайте фрагмент кода, который объединяет все ваши параметры в одну строку (textbox.text = 'StartDate = 2012/01/01, EndDate = 2012/02/01, Surname = Jones и т. д.), прежде чем открывать новую форму для отчета ,

См размещать Open a new window and pass parameters to it vb.net asp

0

Я решил эту проблему путем создания новых querys с параметрами внутри (замена старых из них) для SqlDataSource на события.

Смежные вопросы