2

皆さんこんにちは、私はasp.net C#が初めてなので、先輩からの助けが必要です

次の列を持つテーブルがあります。

ID int unique not null
Title varchar(250) not null
Username varchar(100) not null
Datetime datetime not null
Shortviews varchar(500) not null
Fullviews varchar(1000) not null
Photo image not null

このテーブルにデータを挿入するためのページのコーディングに成功しました。ページに表示したいので、リピーター データ コントロールを使用してタイトルのみを表示し、属性に配置しました。コードは以下のとおりです。

   <asp:Repeater ID="article_rep" runat="server" 
        onitemcommand="article_rep_ItemCommand">
        <itemtemplate>
            <ul class="list1">
                <li><a href="#"><%# Eval("Title")%></a></li>
            </ul>
        </itemtemplate>
    </asp:Repeater>

コードの背後で、次のコードでデータを選択しました

protected void Page_Load(object sender, EventArgs e)
{
    string strConnString = ConfigurationManager.ConnectionStrings["LgnConnectionString"].ConnectionString;
    string str;
    SqlCommand com;
    SqlConnection con = new SqlConnection(strConnString);
    con.Open();
    str = "select top 5 Title from table ORDER BY Datetime DESC";
    com = new SqlCommand(str, con);
    SqlDataReader reader;
    reader = com.ExecuteReader();
    world_rep.DataSource = reader;
    world_rep.DataBind();
    con.Close();
}

最後の 5 行のテーブル レコードが表示されます。任意のタイトルをクリックすると、クリックしたそのタイトルに関連付けられている残りの列情報が、Details.aspx になる別のページに表示されるようにします。

高齢者にとってシンプルで簡単なことはわかっていますが、私はそれを打ってしまいました。事前に感謝します。Details.aspx でコーディングする必要があるものと、Details.aspx.cs でコーディングする必要があるもの

4

2 に答える 2

1

以下のコードを使用してください

//Define the class to hold the Tite property  values.
public class RepeaterTitle
{
     public string Title { get; set; }
}



  string strConnString = ConfigurationManager.ConnectionStrings["LgnConnectionString"].ConnectionString;
    string str;
    SqlCommand com;
    SqlConnection con = new SqlConnection(strConnString);
    con.Open();
    str = "select top 5 Title from table ORDER BY Datetime DESC";
    com = new SqlCommand(str, con);
    SqlDataReader reader;
    reader = com.ExecuteReader();
    List<RepeaterTitle> TitleLIst = new List<RepeaterTitle>();
    while (reader.Read())
    {
        RepeaterTitle oTitle = new RepeaterTitle();
        oTitle.Title = reader.GetValue(0).ToString();
        TitleLIst.Add(oTitle);
    }
    article_rep.DataSource = TitleLIst;
    article_rep.DataBind();
    con.Close();
于 2013-10-26T10:57:53.947 に答える
0

.cs ファイルのコンポーネント ID が間違っています。world_reparticle_repに変更します。その他は良さそうです

protected void Page_Load(object sender, EventArgs e)
{
    string strConnString = ConfigurationManager.ConnectionStrings["LgnConnectionString"].ConnectionString;
string str;
    SqlCommand com;
    SqlConnection con = new SqlConnection(strConnString);
    con.Open();
    str = "select top 5 Title from table ORDER BY Datetime DESC";
    com = new SqlCommand(str, con);
    SqlDataReader reader;
    reader = com.ExecuteReader();
    //world_rep.DataSource = reader;
    //world_rep.DataBind();
    article_rep.DataSource = reader;
    article_rep.DataBind();
    con.Close();
}

詳細ページが必要な場合は、次のようなリンクを追加してください。

<asp:Repeater ID="article_rep" runat="server" 
    onitemcommand="article_rep_ItemCommand">
    <itemtemplate>
        <ul class="list1">
            <li><a href="details.asp?id=<%# Eval("ID")%>"><%# Eval("Title")%></a></li>
        </ul>
    </itemtemplate>
</asp:Repeater>

新しい詳細フォームを作成します。ビューファイルに「Detailsview」コンポーネントを追加します。このような.csファイルで;

protected void Page_Load(object sender, EventArgs e)
{
    string strConnString = ConfigurationManager.ConnectionStrings["LgnConnectionString"].ConnectionString;
    string str;
    int requestId = int.Parse(Request.QueryString["id"]); //Get the ID
    SqlCommand com;
    SqlConnection con = new SqlConnection(strConnString);
    con.Open();
    str = "select * from table where ID=@ID";
    com = new SqlCommand(str, con);
    com.parameters.addWithValue("@ID", requestId); //add ID parameter to query
    SqlDataReader reader;
    reader = com.ExecuteReader();
    myDetailsview.DataSource = reader;
    myDetailsview.DataBind();
    con.Close();
}

Detailsview コンポーネントの自己組織化によると

于 2013-10-26T10:47:31.827 に答える