2010-07-22 34 views

回答

2

如果您在設計時不知道參數數量,並且只能在運行時確定,請考慮在運行時更改數據源的Where屬性。您可以自己插入實際值。

//e.g. we know that we want 4 params this time. 
LinqDataSource1.Where = 
    "Alpha == 1 OR Brave==False OR Charlie> 'Jan 1 1999' or Delta = @DeltaVal"; 
LinqDataSource1.WhereParameters.Add("DeltaVal", "O'Flanagan"); 

如果你知道在運行時ñ PARAMS,你可以簡單地把OR語句在設計時,並修改它們的值。

也許把你的OR子句正確的LinqDataSource聲明。

<asp:LinqDataSource ID="LinqDataSource1" runat="server"   
    Where="Foo == @FooValue OR [email protected]"> 

然後你代碼隱藏可以添加這兩個where參數。

LinqDataSource1.WhereParameters.Add("FooValue", "milk"); 
LinqDataSource1.WhereParameters.Add("BarValue", "eggs"); 
+0

使用這種方法的問題是,我不知道我將在公共控制中使用的大約8個不同的「foovalue」或「barvalue」中的哪一個。因此動態添加whereparameter而不是預先聲明它。 我可能會看到是否可以添加兩個通用值,然後在運行時更改屬性的名稱... – Carl 2010-07-23 07:59:01

+0

@Carl:更新以顯示如何在運行時修改位置和參數。 – 2010-07-23 13:35:28

+0

@Carl:這個更新有幫助嗎?如果您需要更多幫助,請發表評論。請記住在StackOverflow社區中註冊並接受答案! – 2010-07-26 21:19:03