一般绑定gridview数据我都是在.cs文件里面写代码,又或者是在页面写数据源sqldatasource,然后绑定gridview。前者的读取依赖于.cs的写法,需要编译,后者的读取把SQL语句都写到了页面去了。现在我想实现如下功能:
gridview显示A类文章或B类文章,在aspx页面中写好gridview,用“某种方式”通过参数A或B决定gridview加载的内容,调用方法的参数必须写在aspx文件里,也就是不用编译,也能随意更改页面加载的内容。有没有这样的方式,我要的就是那个“某种方式”。

解决方案 »

  1.   

    1,.cs里面的代码都可以完全移植到aspx里面的,也就是不要cs
    2,sqldatasource控件可以设置参数的,参数可以是控件、QueryString参数等,也就是成为了sqldatasource的条件
    3,即使有cs文件,调用里面的方法还是可以通过参数调用的,
      

  2.   


    public DataTable Select(SqlDataSource SqlDataSource1, string str)
        {
            connection(ConfigurationManager.ConnectionStrings["sql连接字符串"].ConnectionString);
            SqlDataSource1.SelectCommand = str;
            return ((DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty)).Table;
        }
    SqlDataSource ds= new SqlDataSource();
    ds.SelectParameters.Add("id", "1");
    gridview.DataSource = Select(ds, "select * from user where id=@id");
    gridview.DataBind(); 
      

  3.   

    about1:怎么移植?
    about2:参数在哪里设置?页面写了代码,那么需要编译才能运行吗?
      

  4.   

    页面中凡是:
    <asp:...../>
    <%....%>
    后台
    cs文件等
    都是要编译的,楼主用GridView当然要编译,生成table发送到客户端,
    至于将cs文件写到页面里,只要加<script runat="server">,例如将Page_Load事件写到页面中,如下:
    (放在<head></head>之间
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
        }
    </script>
      

  5.   

    那就是我不能在不编译的情况下通过改变aspx页面的代码来实现读取不同的数据了吧。
      

  6.   

    正如同不编译就能通过页面读取web.config那样的方法,或者运行时才决定执行的,有没有这样的方法?
    读取方法我已经写好,只是想实现将来改页面结构,不用改逻辑而已。例如:
    <a href='<%=getURLA()%>'><%=getNameA()%></a>
    可以改成:
    <a href='<%=getURLB()%>'><%=getNameB()%></a>方法全部在后台写好了,以上的只是举例。
      

  7.   


    使用SqlDatasource完全可以在代码中设置各个Sql语句属性,只要设置了这个控件就会记住这些参数。不防看看Scott Mitchell的asp.net2.0的编程教程,其实自己就知道不会这么简单想问题了。
      

  8.   


    尽管灵活的程序绝对可以轻松达到,不过我还要告诉你一个经验,往往只有非常业余或者非常专业的程序才会完全依赖绝对灵活的程序。这或者是非常低级的编程,或者是经过了真正的考验。而对于后者,你应该先去为A、B.....设计十几个页面,然后运营一段时间,等经验足够,再抽象出一些非常灵活的自动化程序。如果一开始就想设计出强大的程序,可能既空洞,设计出来的程序的界面和交互体验也非常简单并且恶心,不如认认真真地分别设计A和B的界面(aspx或者ascx)然后动态切换这些专门设计的界面程序。
      

  9.   

    我想把所有数据读取的函数写到一个类S里面,这个类继承了System.Web.UI.Page,然后每个页面再继承S,调用读取函数只需要加上参数就行。现在我已经实现一些简单的调用,也就是从aspx页面直接调用S的方法(包括读取数据库),不用编译。现在我不能实现的是gridview的读取,因为它是要绑定数据源的,而我又不想直接把SQL语句写在页面上,只是想通过一个参数,就返回数据给gridview。
      

  10.   

    或者简单的说一句就是,不编译就能根据aspx的调用方式实现gridview的不同数据读取。
      

  11.   

    可能asp.net还不支持吧,曾经看过一些PHP的系统可以直接把参数(不是SQL语句)写在页面,然后调用一个方法就能读取,不用编译,用记事本修改保存立即生效,所以以为.net也可能有类似的方法。