0
タイトル、名前、コンテンツ、URLをデータテーブルに表示するはずです。以下のコードは動作しますが、4列ではなく6列を表示しています。リンクをデータテーブルにバインドしたいのでハイパーリンクを使用しました。すべての検索結果について、結果をデータテーブルに表示したい。 forループで何が問題になっていますか?なぜ私は3列のURLを取得していますか?私は関連するコンテンツのリンクをクリックすることができる1つのURL列だけを必要とします。データテーブルにURLリンクを正しく表示できません
protected void searchButton_Click(object sender, EventArgs e)
{
SPWeb objCurrentWeb;
SPList objSSList;
String searchWord = searchBox.Text;
int intMemberIndex = 0;
/*WebRequest objWebRequest;
WebResponse objWebResponse;
Stream objResponseStream;
StreamReader objStreamReader;*/
objCurrentWeb = SPContext.Current.Web;
objSSList = objCurrentWeb.Lists["Sales Materials"];
try
{
DataTable result = new DataTable();
result.Columns.Add("Title");
result.Columns.Add("Name");
result.Columns.Add("Content");
result.Columns.Add("Link");
foreach (SPListItem objSSListItem in objSSList.Items)
{
String title = objSSListItem["Title"].ToString();
String name = objSSListItem["Name"].ToString();
String content = objSSListItem["Content Type"].ToString();
if (title.ToUpper().Contains(searchWord.ToUpper()) || name.ToUpper().Contains(searchWord.ToUpper()) || content.ToUpper().Contains(searchWord.ToUpper()))
{
//assign the list item ID to the intMemberIndex variable and exit
intMemberIndex = objSSListItem.ID;
String url = "http:google.com/" + objSSListItem.Url;
HyperLinkField hfield = new HyperLinkField();
hfield.HeaderText = "Link";
hfield.NavigateUrl = url;
hfield.DataTextField = "Link";
resultGrid.Columns.Add(hfield);
result.Rows.Add(title, name, content,url);
}
}
this.resultGrid.DataSource = result;
this.resultGrid.Visible = true;
this.resultGrid.DataBind();
}
catch (Exception ex)
{
resultLabel.Text = ex.Message;
}
}