グリッドビューを構築しようとしていますが、テキストにリンクしているときにHyperLinkFieldを使用して1つのフィールドからテキストを表示する必要があります別のものから。この場合、NavigateURLに使用しようとしているテキストは、pdfの名前です。私が現在HyperLinkFieldのNavigateURLのテキストを取得するために使用しているメソッドは、クエリのフィールドから最初の値を取得するだけなので、正しいテキストが表示されますが、NavigateURLは最初の値を除くすべてが正しくありません。HyperLinkField NavigateURLをSQL列値に設定する方法C#ASP.Net Webフォーム
ここは、aspxページのgridviewです。
<asp:GridView ID="PaperProp" RowStyle-BackColor="#f4f4f4" HeaderStyle-BackColor="#CFDBE5" runat="server" AutoGenerateColumns="False" >
<columns>
</columns>
</asp:GridView>
そして、ここで私が多くをコーディングしないと、私はC#にはかなり新しいので、私、私はGridViewの
string PaperPropQuery = "SELECT bidd_number, bidd_name, bidd_desc, prebid_req, open_dt, buyer, bidd_status, Addendum FROM vPaper_Proposals ORDER BY CONVERT(DateTime, open_dt,101) DESC";
SqlCommand cmd2 = new SqlCommand(PaperPropQuery, new SqlConnection(ConStr));
cmd2.Connection.Open();
var cmdr2 = cmd2.ExecuteReader();
if (cmdr2.Read())
{
LinkField = new HyperLinkField();
LinkField.HeaderText = "RFP No.";
LinkField.DataTextField = "bidd_number";
LinkField.HeaderStyle.CssClass = "GVpadding";
LinkField.ItemStyle.CssClass = "GVpadding";
LinkField.NavigateUrl = "./bids/" + cmdr2["bidd_name"].ToString();
LinkField.Target = "_blank";
PaperProp.Columns.Add(LinkField);
TextField = new BoundField();
TextField.HeaderText = "Description";
TextField.DataField = "bidd_desc";
TextField.HeaderStyle.CssClass = "GVpadding";
TextField.ItemStyle.CssClass = "GVpadding";
PaperProp.Columns.Add(TextField);
LinkField = new HyperLinkField();
LinkField.HeaderText = "PreBid";
LinkField.DataTextField = "prebid_req";
LinkField.HeaderStyle.CssClass = "GVpadding";
LinkField.ItemStyle.CssClass = "GVpadding";
PaperProp.Columns.Add(LinkField);
TextField = new BoundField();
TextField.HeaderText = "Open Date";
TextField.DataField = "open_dt";
TextField.HeaderStyle.CssClass = "GVpadding";
TextField.ItemStyle.CssClass = "GVpadding";
PaperProp.Columns.Add(TextField);
LinkField = new HyperLinkField();
LinkField.HeaderText = "Buyer";
LinkField.DataTextField = "buyer";
LinkField.HeaderStyle.CssClass = "GVpadding";
LinkField.ItemStyle.CssClass = "GVpadding";
LinkField.NavigateUrl = "";
PaperProp.Columns.Add(LinkField);
TextField = new BoundField();
TextField.HeaderText = "Status";
TextField.DataField = "bidd_status";
TextField.HeaderStyle.CssClass = "GVpadding";
TextField.ItemStyle.CssClass = "GVpadding";
PaperProp.Columns.Add(TextField);
LinkField = new HyperLinkField();
LinkField.HeaderText = "Addendum";
LinkField.DataTextField = "Addendum";
LinkField.HeaderStyle.CssClass = "GVpadding";
LinkField.ItemStyle.CssClass = "GVpadding";
PaperProp.Columns.Add(LinkField);
cmdr2.Close();
PaperProp.DataSource = cmd2.ExecuteReader();
PaperProp.DataBind();
cmd2.Connection.Close();
cmd2.Connection.Dispose();
}
else
{
PaperProplbl.Text = "None at this time.";
}
を構築するために使用していることの背後にあるコードからのコードですこれは恐らくDBをクエリしてグリッドビューを構築する恐ろしい方法だと認識しています。そのためコードを改善する方法についての推奨事項はありませんが、私の主な質問はどうすれば得られますか
LinkField.NavigateUrl = "./bids/" + cmdr2 ["bidd_name"]。ToString();
フィールドの各行のbidd_nameを最初の1文字ではなく含むようにしますか?