具体描述,
1、用DataGrid的删除列,如何获取本列的Id号
2、我想通过DataGrid中的超级链接列或者模板列实现window.open('abc.aspx?id=参数'),搞了好长时间没有搞定。以上2个问题希望得到高手指点,先谢了!100分相送。
1、用DataGrid的删除列,如何获取本列的Id号
2、我想通过DataGrid中的超级链接列或者模板列实现window.open('abc.aspx?id=参数'),搞了好长时间没有搞定。以上2个问题希望得到高手指点,先谢了!100分相送。
解决方案 »
- 级联菜单js在服务器中不好使
- 获取客户端IP问题
- 服务器远程连接端口修改失败
- IIS假死怎么解决[总结贴]
- 高手请教,如何做到网页上的资料只能看不能下载呢?
- 父子页刷新问题。企业级应用经常出现,大家是怎么解决的?急!!100分!!
- 项目运行问题。错误 248 “YiWangDian.Web.Admin.Ascx.AddSearch”并不包含“Context”的定义 c:\WINDOWS\M
- 一行看不懂,帮忙看看
- dropdownlist已绑定 如何可以在gridview中显示全部
- 查询数据【求救】
- 关于XML查询问题,在线等急,谢谢各位
- 在IIS中的虚拟目录怎样用命令来创建虚拟目录的应用程序名称
+++++++++++++++++++++++++++++++++++++++
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string strID = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
int intID = Convert.ToInt32(DataGrid1.DataKeys[e.Item.ItemIndex]);
}2、我想通过DataGrid中的超级链接列或者模板列实现window.open('abc.aspx?id=参数'),搞了好长时间没有搞定。
+++++++++++++++++++++++++++++++++++++++
<asp:templatecolumn itemstyle-width="100">
<itemtemplate>
<a href="javascript:window.open('menuxp.aspx')">Test</a>
</itemtemplate>
</asp:templatecolumn>
<asp:TemplateColumn HeaderText="ID">
<ItemTemplate>
<a href="#" onclick='<%# "Javascript:window.open(\"yourpage.aspx?id=" + DataBinder.Eval(Container, "DataItem.Id")+ "\");" %>'>
<%# DataBinder.Eval(Container.DataItem,"Id")%>
</a>
</ItemTemplate>
<HEAD>
<title>WebForm4</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 169px; POSITION: absolute; TOP: 215px"
runat="server" Width="287px" Height="188px" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="a" HeaderText="aa"></asp:BoundColumn>
<asp:BoundColumn DataField="b" HeaderText="bb"></asp:BoundColumn>
<asp:TemplateColumn>
<HeaderTemplate>
<FONT face="宋体"></FONT>
</HeaderTemplate>
<ItemTemplate>
<FONT face="宋体">
<asp:Button id="Button1" runat="server" Text="删除" CommandName="del"></asp:Button></FONT>
</ItemTemplate>
<EditItemTemplate>
<FONT face="宋体"></FONT>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<FONT face="宋体">
<asp:Button id="Button2" runat="server" Text="新页面" CommandName="new"></asp:Button></FONT>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</HTML>
后台C#代码:page_load事件if (!Page.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("a");
dt.Columns.Add("b"); DataRow dr; dr=dt.NewRow(); dr["a"]="1";
dr["b"]="1"; dt.Rows.Add(dr); dr=dt.NewRow(); dr["a"]="2";
dr["b"]="2"; dt.Rows.Add(dr); this.DataGrid1.DataSource=dt;
this.DataGrid1.DataBind();
}DataGrid1_ItemCommand事件:if (e.CommandName == "del")
{
string sql = "delete from Table where a = '"+ e.Item.Cells[0].Text +"'";
//执行你的删除过程
} if (e.CommandName == "new")
{
string url = "webfrom1.aspx&ID=" + e.Item.Cells[0].Text; Page.RegisterStartupScript("test", "<script>window.open('"+ url +"')</script>"); }
弹出页面是 <asp:HyperLinkColumn DataNavigateUrlField="EmployeeID" DataNavigateUrlFormatString="javascript:varwin=window.open('detail.aspx?id={0}',null,width=300,height=200');window.close();" DataTextField="LastName" HeaderText="LastName"></asp:HyperLinkColumn>
第一个问题大家的意见都查不错,为什么我用之后会出现下面的错误:索引超出范围。必须为非负值并小于集合大小。参数名: index
行 74: string strID = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
<asp:DataGrid id="ItemsGrid"
DataKeyField="id"
runat="server">