我有以下内容,似乎工作正常:
在我的.cs文件中:
protected void menu_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
{
string value = (e.Item.Value).ToString();
WtrClientDS.SelectCommand = "SELECT * from Prog where ProgId = " + value;
}
在.aspx文件中:
<asp:SqlDataSource ID="WtrClientDS" runat="server" ConnectionString="<%$ ConnectionStrings:ProgSQL %>">
</asp:SqlDataSource>
如上所述,我上面所做的工作正常,但我不认为这是最佳做法。
相反,我喜欢在.aspx文件中使用select命令,如下所示但不起作用:
.cs文件内部
protected void menu_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
{
string value = (e.Item.Value).ToString();
// changed below per input from user but still does not work.
WtrClientDS.SelectParameters.Add(new Parameter("LocId", System.TypeCode.String, value));
}
.aspx文件内部:
<asp:SqlDataSource ID="WtrClientDS" runat="server" ConnectionString="<%$ ConnectionStrings:ProgSQL %>"
SelectCommand = "SELECT * from Prog where ProgId = @LocId">
<SelectParameters>
<asp:Parameter Name="LocId" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
我上面的内容根本不起作用。不会给出错误但是根本不起作用。 我也想知道哪种方法/理想的方法更适合。
答案 0 :(得分:1)
尝试使用新的SQLDataSource
:
protected void menu_ItemClick(object sender, Telerik.Web.UI.RadMenuEventArgs e)
{
string value = (e.Item.Value).ToString();
string strConn = ConfigurationManager.ConnectionStrings["ConnectionStrings:ProgSQL"].ConnectionString;
SqlDataSource WtrClientDS = new SqlDataSource();
WtrClientDS.ConnectionString = strConn;
WtrClientDS.SelectCommand = "SELECT * from Prog where ProgId = @LocId"
WtrClientDS.SelectParameters.Add(new Parameter("LocId", System.TypeCode.String, value));
//refresh your control
WtrClients.DataSource = WtrClientDS.Select(DataSourceSelectArguments.Empty);
WtrClients.Rebind();
}