“哈哈,看了這篇http://www.jb51.net/article/33388.htm,只有效果,但沒有結果,我怎樣獲取選擇行的相關記錄?”
Insus.NET首先多謝網友對上面那篇博文的關注。解決你的問題,可以嘗試獲取選擇行的索引或是主鍵即可,能獲取到主鍵,其它字段的值,也可以獲取到了。
下圖中,高亮選擇區,即是針對問題解決而在原在代碼添加的部分。一是在DataList控件添加一個DataKeyField,以便獲取到它的主鍵值,另外還添加了兩個铵鈕及一個Label標答,用來顯示選擇結果,真正將來你也許用不上標簽,因為獲取到結果之後,就可以進行你想的要事情了。
兩個铵鈕事件,都是很簡單,Insus.NET相信你能看得懂,如果遇上不明,可以討論:
復制代碼 代碼如下:
View Code
protected void Button1_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
if (FindControl("DataListConstellation") == null) return;
DataList dlconstellation = (DataList)FindControl("DataListConstellation");
foreach (DataListItem dli in dlconstellation.Items)
{
if (dli.FindControl("RadioButtonSelect") == null) return;
RadioButton rb = (RadioButton)dli.FindControl("RadioButtonSelect");
if (rb.Checked)
{
LabelSelectedResult.Text = string.Format("你執行铵鈕'{0}',選擇行的索引是:{1}; 主鍵值是:{2}", button.Text, dli.ItemIndex.ToString(), dlconstellation.DataKeys[dli.ItemIndex].ToString());
break;
}
else
{
LabelSelectedResult.Text = string.Format("你執行铵鈕'{0}',沒有選擇任何一行。", button.Text);
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
DataList dlconstellation = (DataList)FindControl("DataListConstellation");
for (int i = 0; i < dlconstellation.Items.Count; i++)
{
RadioButton rb = (RadioButton)dlconstellation.Items[i].FindControl("RadioButtonSelect");
if (rb.Checked)
{
LabelSelectedResult.Text = string.Format("你執行铵鈕'{0}',選擇行的索引是:{1}; 主鍵值是:{2}", button.Text, i.ToString(), dlconstellation.DataKeys[i].ToString());
break;
}
else
{
LabelSelectedResult.Text = string.Format("你執行铵鈕'{0}',沒有選擇任何一行。", button.Text);
}
}
}