我有一個由SQL表填充的下拉列表(selProject)。值是id字段,名稱是名稱字段。SqlDataSource ControlParameter不工作
我有一個由sqldatasource提供的gridview控件。
我想要做的是基於selProject下拉條件的條件where子句。我花了3個小時搜索並試圖弄清楚這一點。我擔心我會抓住並殺死一個共同的人。
當我在下拉列表中選擇一個特定值時,控件的selectedValue是「40」。我通過調試來驗證這一點。這是正確的和預期的。
我有一個controlParameter看起來像:
<asp:ControlParameter ControlID="selProject" PropertyName="SelectedValue" Name="ProjectIDPass" Type="Int32" />
的SelectCommand中包括:(Batches.ProjectID = @ProjectIDPass)
爲Where子句的一部分。
我沒有行,沒有錯誤,沒有問題。我懷疑的問題是下拉列表的SelectedValue是一個字符串,而Batches.ProjectID是一個整數。
當我硬編碼40代入@ProjectIDPass的where子句時,它很好用。當我回到ControlParameter時炸彈就出來了。我嘗試了各種轉換技術。
有什麼辦法可以看到用實際值代替參數執行的SqlDataSouce SelectCommand。
這非常有幫助。我遇到的問題是,在
SqlDataSource.Selecting
期間,我正在檢查selected.index和selected.value下拉列表的值,並且這些值尚未設置。所以它會向SQLDataSource提供無效的值,因此不會拉動行。我相信這是頁面加載的訂單的問題。在contentPlaceHolder部分中,我將設置來自母版頁變量的代碼中的dropdown.selectedvalue的值。從選擇事件中,母版頁變量尚不可用。有什麼想法嗎? –@CPalmer - 您可以在設置選定的值後重新綁定 –
好吧,我看到初始數據綁定正在page_init上發生,在任何控制sqldatasource參數的下拉列表上設置值的代碼。 GAH!有關解決方法的任何想法? –