建了一个窗体class.aspx,代码如下(省略了部分代码)
<td style="width: 205px; height: 61px">
                    &nbsp;
                    <asp:Label ID="Label1" runat="server" Text="课程列表" Width="198px"></asp:Label>
                    <asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" RepeatColumns="1">
                        <ItemTemplate>
                            <a href='Video.aspx?Id=<%#Eval("CoId")%>'>
                                <%#Eval("CoName")%>
                            </a>
                        </ItemTemplate>
                    </asp:DataList>
                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NewNetConnectionString %>"
                        SelectCommand="SELECT [CoName], [CoId] FROM [Course]"></asp:SqlDataSource>
                </td>在另外一个窗体video.aspx中如何获取窗体class.aspx中的CoId值呢?
我采取的办法是:在Video.aspx.cs文件中用 string strId = Request.QueryString["Id"].ToString()语句来获取,但调试显示的是“未将对象引用设置到对象的实例”,说明Id没获得值,如何才能获得这个值呢

解决方案 »

  1.   

    比如 'http://www.aaa.com?a=1&b=2&c=3
      

  2.   

    如何操作呀?能通俗些吗?我是.NET开发初学者。
      

  3.   

    那下面这代码中的Id有何用呢?和传到Video.aspx中的Id有什么关系呢?
    <ItemTemplate>
               <a href='Video.aspx?Id=<%#Eval("CoId")%>'><%#Eval("CoName")%></a>
              </ItemTemplate>
      

  4.   

    参数传递过去之后 可以通过request["CoId"]来获取
      

  5.   

    应该是没有传过去 你看看你的URL地址。另外给你写个SQL的吧。
      

  6.   

      protected void Page_Load(object sender, EventArgs e)
            {
                DataTable dtOne = new DataTable();
                dtOne.Columns.Add("CoId", typeof(string));
                dtOne.Columns.Add("CoName", typeof(string));
                for (int j = 1; j < 10; j++)
                {
                    DataRow dr1 = dtOne.NewRow();
                    dr1[0] = j.ToString();
                    dr1[1] = "链接第" + j + "几条数据";                dtOne.Rows.Add(dr1);
                }
                this.DataList1.DataSource = dtOne;
                this.DataList1.DataBind();
                //你也可以调用下面那个方法
                //那这块就应该这么写
                //this.DataList1.DataSource = ReturnDataTable("你的SQL语句比如select * from tableName");
                //this.DataList1.DataBind();            //Video.aspx页面的代码是
                //Response.Write(Request.QueryString["Id"] == null ? "为空" : Request.QueryString["Id"].ToString());        }
            public static DataTable ReturnDataTable(string cmdtext)
            {
                SqlConnection cn = new SqlConnection();
                cn.ConnectionString = "数据库连接字符串";
                DataTable dt = new DataTable();
                SqlCommand cmd = new SqlCommand();
                cmd = new SqlCommand(cmdtext, cn);
                cmd.CommandType = CommandType.Text; ;
                SqlDataReader dr = null;
                using (dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    dt.Load(dr);
                }
                return dt;
            }
      

  7.   

    HTML
     <td style="width: 205px; height: 61px">
                &nbsp;
                <asp:Label ID="Label1" runat="server" Text="课程列表" Width="198px">
                </asp:Label>
                <asp:DataList ID="DataList1" runat="server">
                    <ItemTemplate>
                        <a href='Video.aspx?Id=<%#Eval("CoId")%>'>
                            <%#Eval("CoName")%>
                        </a>
                    </ItemTemplate>
                </asp:DataList>
            </td>
      

  8.   

    你看下你的ie打开video.aspx的时候地址栏是什么Id=这里有值吗?