C# 为gridview创建单个“视图”按钮方法
我只是尝试为gridview的特定行中的数据创建一个单键视图,并将其传递给Silverlight查看器。 这里有一个viewall按钮,我正试图从中找出答案C# 为gridview创建单个“视图”按钮方法,c#,asp.net,linq,gridview,C#,Asp.net,Linq,Gridview,我只是尝试为gridview的特定行中的数据创建一个单键视图,并将其传递给Silverlight查看器。 这里有一个viewall按钮,我正试图从中找出答案 protected void btnViewAll_Click(object sender, EventArgs e) { string id = HttpContext.Current.Request.Headers["id"]; #if DEBUG if (id == null)
protected void btnViewAll_Click(object sender, EventArgs e)
{
string id = HttpContext.Current.Request.Headers["id"];
#if DEBUG
if (id == null)
id = "111"; // Use my own id for testing locally
#endif
using (aDataContext dc = new aDataContext())
{
var query = (from a in dc.aLists
where a.ID == id
select new
{
a.aNumber,
a.bNumber,
a.cNumber,
a.dNumber,
}
);
List<aListItem> List = new List<aListItem>();
foreach (var queryItem in query)
{
aList.Add(new aListItem()
{
aNumber = queryItem.aNumber,
bNumber = queryItem.bNumber,
cNumber = queryItem.cNumber,
dNumber = queryItem.dNumber
});
}
Session["aList"] = aList;
}
Session["Database"] = null;
Response.Redirect("Viewer.aspx" + "?UseList=true");
}
解决方案1:
可以使用GridView中的按钮字段执行此操作:
<asp:ButtonField ButtonType="Button" CommandName="View" Text="View" />
将行特定信息添加到GridView的DataKeyName中,例如,如果需要使用Silverlight viewer查看数据源的字段name1和age2:
<asp:GridView ID="gvClients" DataKeyNames="name1,age2" ... >
并处理该命令:
void gvClients_RowCommand(object sender, GridViewCommandEventArgs e)
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
string name1 = (string)gvClients.DataKeys[rowIndex].Values["name1"];
int age2 = (int)gvClients.DataKeys[rowIndex].Values["age2"];
// Open docName with the viewer
...
}
解决方案2:另一种避免回发的方法是使用超链接字段:
<asp:HyperLinkField Text="View" DataNavigateUrlFormatString="Viewer.aspx?Name={0}&Age={1}" DataNavigateUrlFields="name1,age2" />
你有什么问题?是否要在GridView中插入按钮?或者打开查看器窗口或重定向到它?
<asp:HyperLinkField Text="View" DataNavigateUrlFormatString="Viewer.aspx?Name={0}&Age={1}" DataNavigateUrlFields="name1,age2" />