首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C#网页中调用ASP.NET变量

在C#网页中调用ASP.NET变量
EN

Stack Overflow用户
提问于 2016-06-24 23:19:57
回答 1查看 533关注 0票数 0

因此,我一直很难在我的C#网页中调用这个ASP.NET变量。

代码语言:javascript
运行
复制
    Employee Title: <asp:DropDownList ID="titles" runat="server" DataSourceID="SqlDataSource1" DataTextField="Title" DataValueField="Title" AutoPostBack="True"></asp:DropDownList>


    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:LargeEmployeeConnectionString %>" ProviderName="<%$ ConnectionStrings:LargeEmployeeConnectionString.ProviderName %>" SelectCommand="SELECT DISTINCT [Title] FROM [Employees]"></asp:SqlDataSource>
</div>
    <%
    string title = "Manager";

    if (titles.SelectedItem != null)
    {
        title = titles.SelectedItem.Value;
    }
    %>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:LargeEmployeeConnectionString %>" ProviderName="<%$ ConnectionStrings:LargeEmployeeConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Employees] WHERE ([Title] = ?)">
        <SelectParameters>
            <asp:Parameter DefaultValue="<%Response.Write(title);%>" Name="Title" Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>
    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource2" AutoGenerateColumns="true" DataKeyNames="EmployeeID">
    </asp:GridView>

如您所见,变量标题在DataSource2的参数中被调用。

我使用DefaultValue="Manager“测试了这个参数,这是下拉列表中的值之一。起作用了。

但我不知道如何动态地工作。

我试过:

代码语言:javascript
运行
复制
<% title %>
<%=title%>
<%Response.write(title);%>

更新:这个额外的代码也不起作用。

代码语言:javascript
运行
复制
<%: title %>

虽然当我在asp:参数标记之外调用它时,它确实起作用了。

以下是基于您最新建议的新代码:

ASP.NET:

代码语言:javascript
运行
复制
<form id="form1" runat="server">
<div>
    Employee Title: <asp:DropDownList ID="titles" runat="server" DataSourceID="SqlDataSource1" DataTextField="Title" DataValueField="Title" AutoPostBack="True"></asp:DropDownList>


    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:LargeEmployeeConnectionString %>" ProviderName="<%$ ConnectionStrings:LargeEmployeeConnectionString.ProviderName %>" SelectCommand="SELECT DISTINCT [Title] FROM [Employees]"></asp:SqlDataSource>
</div>
    <%
        string title = "Manager";

        if (titles.SelectedItem != null)
        {
            title = titles.SelectedItem.Value;
            Title = title;
        }
    %>
    Title Is: <%=Title%>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:LargeEmployeeConnectionString %>" ProviderName="<%$ ConnectionStrings:LargeEmployeeConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Employees] WHERE ([Title] = ?)">
        <SelectParameters>
            <asp:Parameter DefaultValue="<%=Title%>" Name="Title" Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>
    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource2" AutoGenerateColumns="true" DataKeyNames="EmployeeID">
    </asp:GridView>
</form>

C#:

代码语言:javascript
运行
复制
public partial class Part1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        public string Title
        {
            get; set;
        }
    }

最后解决办法:

代码语言:javascript
运行
复制
<asp:ControlParameter ControlID="titles" DefaultValue="Manager" Name="Title" PropertyName="SelectedValue" Type="String" />
EN

Stack Overflow用户

回答已采纳

发布于 2016-06-24 23:21:59

以下任何一项都应该正常工作。

代码语言:javascript
运行
复制
<%# title %>

<%: title %>

此外,如果您只是在调用Response.write(),那么为什么不直接在代码隐藏(.cs)文件中调用它呢?不知道在.aspx页面中调用它有什么意义。

代码语言:javascript
运行
复制
<div>
Data Is: <%# title %>
</div>

现在我明白了,如果没有错的话,标题变量是在一个方法中声明的,所以您无法访问它,因为它的作用域结束在方法块中。确保变量是在类级别声明的。最好声明一个公共属性以获得如下所示的变量访问权限

代码语言:javascript
运行
复制
public string Title
{
  get; set; 
}

在您的方法块中,只需设置如下

代码语言:javascript
运行
复制
string title = "Manager";

if (titles.SelectedItem != null)
{
    title = titles.SelectedItem.Value;
    Title = title;
}

在aspx中访问它

代码语言:javascript
运行
复制
<asp:Parameter DefaultValue="<%=Title%>" Name="Title" Type="String" />
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38023403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档