2011-03-23 48 views
0

我有一個aspx頁與代碼隱藏一個int:參考從代碼隱藏在標記(.NET)一個int

private const int id = 11; 

並且避免在標記我有

<asp:SqlDataSource ID="SqlDataSource" runat="server" 
SelectCommand="SELECT Name FROM [StatusOption] WHERE StatusId = 11"> 

我想要在標記中引用代碼隱藏的id,以便在必要時只需在代碼隱藏中更改它。這是可能的和如何。

回答

2

您可以在SqlDataSource.Selecting事件中設置所需的值。

我添加了一個新的選擇參數,以您的數據源 - statusId並在SqlDataSource_Selecting事件處理程序值設置爲它:

<asp:SqlDataSource ID="SqlDataSource" runat="server" 
    SelectCommand="SELECT Name FROM [StatusOption] WHERE StatusId = @statusId" 
    OnSelecting="SqlDataSource_Selecting"> 
    <SelectParameters> 
     <asp:Parameter Name="statusId" Type="Int32" /> 
    </SelectParameters> 

,然後在後臺代碼:

protected void SqlDataSource_Selecting(
    object sender, 
    SqlDataSourceSelectingEventArgs e) 
{ 
    e.Command.Parameters["@statusId"].Value = id; 
} 
+0

+1看起來像解決方案 – 2011-03-23 14:02:34

+0

感謝您的答案。該命令必須是e.Command.Parameters [「@ statusId」]。Value = id;雖然;) – AGuyCalledGerald 2011-03-23 18:30:57

+0

@ Jan-Frederik Carl,謝謝!更新了我的答案。 – Alex 2011-03-23 18:37:14