我在GridView中建了一个TemplateField字段,在编辑摸版的时候放了一个Button我先点这个Button弹出另一个界面,在这个界面中修改这条纪录,问题出来了,1。我如何取得我选择的这条纪录的ID 2。这个WEB的ID如何传到另一个编辑WEB中去 3。在另一个编辑WEB中如何提取这条纪录的其他数据,从而附值到另一个编辑WEB的控件中。就这三个问题,麻烦大家帮我写写代码,因为刚学ASP。NET 很多东西不知道怎么写,以前是搞DELPHI的,现在想转行,给些代码 谢谢大家!
解决方案 »
- 关于VSS的小问题!
- 求实现一个动态显示时间的功能,就是每秒钟显示一次,时间要从取服务器取时间
- 请问如何禁止虚拟主机用户利用System.DirectoryServices 下的DirectoryEntry 进行ADSI查询
- .NET 如何连接 SAP请各位高手给点代码看看
- 获取最新版本时,会出现签出
- 带datagrid控件的页面刷新问题!!
- 关于联通wap访问的问题,有高手或者有兴趣的朋友进来帮下忙!谢谢!
- 大家帮我看看这段代码
- “/”应用程序中的服务器错误。
- 用asp.net开发项目,遇到界面设计工具的问题,请熟悉的朋友进来讨论一下
- 搜索asp.net ajax框架 ajaxpro
- c# 调c++ dll 尝试读取或写入受保护的内存。这通常指示其他内存已损坏
<asp:GridView Width="100%" ID="GridView1" runat="server" CssClass="GridCss" AutoGenerateColumns="false"
PageSize="20" AllowPaging="true" OnRowCommand="GridView1_RowCommand" OnPageIndexChanging="GridView1_PageIndexChanging">
<Columns>
<asp:ButtonField Text="SingleClick" CommandName="SingleClick" Visible="False" />
<asp:TemplateField HeaderText="费用代号">
<ItemTemplate>
<%#Eval("fydh")%>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="费用名称">
<ItemTemplate>
<%#Eval("fymc")%>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" />
</asp:TemplateField>
<asp:TemplateField HeaderText="确定">
<ItemTemplate>
<asp:LinkButton ID="deleteButton" runat="server" Text="删除" CommandArgument='<%#Eval("identifierid")%>'
CommandName="Delete_F" OnClientClick="return confirm('您确认删除吗?')" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>
</Columns>
<SelectedRowStyle CssClass="SelectCss" />
<AlternatingRowStyle CssClass="AlterRowCss" Height="22px" />
<RowStyle CssClass="RowCss" Height="22px" />
<HeaderStyle CssClass="HeadCss" Height="22px" />
<FooterStyle CssClass="FootCss" />
<PagerStyle CssClass="PageCss" />
</asp:GridView>
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.ToString() == "Delete_F")
{
MaterialBF db = new MaterialBF();
string identifierid = e.CommandArgument.ToString();//取出要更新信息的唯一标识 db.DeleteMyFy(identifierid);
BindData();
}
}
在后台通过e.CommangArgument获得主键ID你可以通过ID重新查询一遍数据然后把值添加到控件上
按你说的方法去做 我如果把这个BUTTON绑定了ID的话 他的TEXT就显示的是ID了 我只想让他显示编辑这俩个字~
你说的 通过ID重新查询一遍数据然后把值添加到控件上 这个方法可用,主要是我怎么把ID弄过来 能不能给稍微写写代码~
DataKeyNames="ID"
當button觸發事件
protected void Button1_OnClick(object sender, EventArgs e)
{
Response.Redirect("xxx.aspx?ID=" + GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString());
}
xxx.aspx.cs接收ID
protected void Page_Load(object sender, EventArgs e)
{
string ID = Request.QueryString["ID"];
}
{
Response.Redirect("http://localhost:4552/WebSite1/Default3.aspx?ID=" + GridView1.DataKeys[GridView1.SelectedIndex].Value.ToString());
}
我按shinevi这样写了 他的思路很清晰,但是报错
索引超出范围。必须为非负值并小于集合大小。
参数名: index
这是为什么呢~
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="466px"
DataKeyNames="ID" OnRowEditing="GridView1_Editing" >
<Columns>
...(各個欄位)
<asp:CommandField ShowEditButton="True">
<HeaderStyle Width="60px" />
<ItemStyle Width="60px" />
</asp:CommandField>
</Columns>
</asp:GridView>
protected void GridView1_Editing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Response.Redirect("xxx.aspx?Vote_ID=" + GridView1.DataKeys[GridView1.EditIndex].Value.ToString());
}
{
GridView1.EditIndex = e.NewEditIndex;
Response.Redirect("xxx.aspx?ID=" + GridView1.DataKeys[GridView1.EditIndex].Value.ToString());
}
CommandName="Delete_F" OnClientClick="return confirm('您确认删除吗?')" />这里主要是把 ID 也就是<%#Eval("identifierid")%>给CommandArgument以便取出protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.ToString() == "Delete_F")
{
MaterialBF db = new MaterialBF();
string identifierid = e.CommandArgument.ToString();//取出要更新信息的唯一标识 db.DeleteMyFy(identifierid);
BindData();
}
}这个在主要是用来知道哪个修改或是删除的按钮。MaterialBF db = new MaterialBF();这句是人家的自己的方法,你不用管,你只要看见string identifierid = e.CommandArgument.ToString();//取出要更新信息的唯一标识。
这个是你要的ID值。 这里你可以采用Response.Redirect 进行跳转了。identifierid就是你的ID了。下面的代码,不用我写了吧。你试试吧。
其實你不一定要添加按鈕,GridView有自帶的 編輯 屬性的,上面的你只要將GridView綁定的數據補上就可以用了~
<asp:TemplateField HeaderText="编辑">
<ItemTemplate>
<asp:LinkButton ID="deleteButton" runat="server" Text="编辑" PostBackUrl='<%# Eval("ID","test.aspx?id={0}") %>' />
</ItemTemplate>
<ItemStyle HorizontalAlign="Right" />
</asp:TemplateField>绑定PostBackUrl就行了,其中Eval("ID","test.aspx?id={0}") 的ID是数据库记录的ID,test.aspx是弹出的页面