我想在我的Web应用程序中使用GridView,但我需要务实地使用它。
我需要使用来自Access数据库的数据填充我的网格视图(已经使用DataTable完成),然后让用户从表中选择一行。如果选择了该行,则用户可以单击将他/她重定向到新网页的按钮,该网页将允许他/她编辑来自数据库的数据。我想通过编写代码来实现这一点(好吧,我点击并拖动gridView控件,然后为其编写代码)。
经过研究,我终于设法使用DataTable填充我的GridView,但是我无法找到一个解决方案,可以使每行可选并返回一个特定的值(例如,Name列中的字符串)。
有人能指出我正确的方向吗? :) 我希望能够像Java中的JTable一样使用它。
这是我课程的项目。我不想使用任何类型的向导,因为这会导致标记减少。我可以使用ListBox逃脱,但我想进一步学习新的东西。
这是我当前的代码(仅包含示例数据,未连接到数据库)。
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("DOB");
DataRow dr = dt.NewRow();
dt.Rows.Add(new Object[] { 1, "Smith" });
GridView1.DataSource = dt;
GridView1.DataBind();
}
编辑:
我设法找到了做我需要做的事情的非常简单的方法。这种方法改变了我最初的想法,但这将使我的网络应用程序更加用户友好,使用更快:)这是我的解决方案:
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("DOB");
DataRow dr = dt.NewRow();
dt.Rows.Add(new Object[] { 1, "Smith" });
//Generate buttons for each row
GridView1.AutoGenerateSelectButton = true;
//string array that acts as a key for which values to be return once an even occurs
string[] key = { "Name" };
GridView1.DataKeyNames = key;
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)
{
//simple label to check if the program returns correct value
Label2.Text = GridView1.SelectedValue.ToString();
}
我希望这有助于某人:) 谢谢你的回答
答案 0 :(得分:0)
在网格中添加一个链接按钮作为模板字段,并在运行时从对象模型设置链接URL。 您将使用正确的URL绑定所有链接,一旦单击(调用javascript函数),它将使用正确的行/对象Id将用户导航到指定的URL。
<强> HTML 强>
<asp:Grid id="gridId" OnRowDataBound="grdId_RowDataBound">
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkId" Text='<%#Eval("Your Object Property")%>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</asp:grid>
代码
protected void grdId_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lnk = (LinkButton)e.Row.FindControl("lnkId");
//Get your URL which could be http://domain/page?Id=currentRowId
lnk.OnClientClick = "return navigate('"URL');"
}
}
<强>的Javascript 强>
function navigate(url)
{
window.location.href = url;
}