我拉了一个gridview控件,名字叫GridViewLogList,动态的从数据库里读出了表A的数据
我想任意的修改或者删除某一行
请高手给出修改和删除的代码?
删除里带个提示“确定要删除某行吗?”<asp:GridView ID="GridViewLogList" runat="server" Width="734px" CellPadding="4" ForeColor="#333333" GridLines="None" Height="136px" AllowPaging="True" OnRowDeleting="GridViewLogList_RowDeleting">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:HyperLinkField HeaderText="修改" NavigateUrl="maintenanceLog.aspx" Text="修改" />
<asp:HyperLinkField HeaderText="删除" NavigateUrl="logList.aspx" Text="删除" />
</Columns>
</asp:GridView>
我想任意的修改或者删除某一行
请高手给出修改和删除的代码?
删除里带个提示“确定要删除某行吗?”<asp:GridView ID="GridViewLogList" runat="server" Width="734px" CellPadding="4" ForeColor="#333333" GridLines="None" Height="136px" AllowPaging="True" OnRowDeleting="GridViewLogList_RowDeleting">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:HyperLinkField HeaderText="修改" NavigateUrl="maintenanceLog.aspx" Text="修改" />
<asp:HyperLinkField HeaderText="删除" NavigateUrl="logList.aspx" Text="删除" />
</Columns>
</asp:GridView>
添加模板列在html中<asp:TemplateField HeaderText="删除" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandArgument='<%# Eval("TagID") %>'
CommandName="Delete" OnClientClick="return confirm('您确认删除该记录?');" Text="删除"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="PID(字段名)" DataNavigateUrlFormatString="EditPro.aspx?PID={0}" HeaderText="修改" Text="修改" />
是用HyperLinkField 还是TemplateField ?
<asp:TemplateField HeaderText="删除" ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandArgument='<%# Eval("TagID") %>'
CommandName="Delete" OnClientClick="return confirm('您确认删除该记录?');" Text="删除"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
TagID就是你绑定到GRIDVIEW中的数据源的DeleteCommand命令中的参数。随便举个例子:
DeleteCommand = "delete from table where id = @TagID"
<asp:GridView ID="GridView1" runat="server" EnableViewState="true" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowDeleting="GridView1_RowDeleting" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="course_id" HeaderText="课程代码" />
<asp:BoundField DataField="course_name" HeaderText="课程名称" />
<asp:BoundField DataField="course_period" HeaderText="学时" />
<asp:BoundField DataField="course_credit" HeaderText="学分" />
<asp:BoundField DataField="course_kind" HeaderText="课程类型" />
<asp:BoundField DataField="course_describe" HeaderText="课程信息" />
<asp:BoundField DataField="startToEnd" HeaderText="起始周" />
<asp:HyperLinkField HeaderText="修改" Text="修改" DataNavigateUrlFields="course_id" DataNavigateUrlFormatString="courseEdit.aspx?course_id={0}" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
后台代码:
//////删除
BaseClass bc = new BaseClass();
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
bc.ExecSQL("delete from course where course_id='" + this.GridView1.DataKeys[e.RowIndex].Value.ToString() + "'");
GridView1.DataSource = bc.GetDataSet("select * from [course]", "course");
GridView1.DataKeyNames = new string[] { "course_id" };
GridView1.DataBind();
}
修改可以再做一个页面courseEdit.aspx:<table>
<tr>
<td>
编辑课程信息</td>
</tr>
<tr>
<td>
课程代码:</td>
<td>
<asp:TextBox ID="tb_id" runat="server" Width="200px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="tb_id"
ErrorMessage="**"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
课程名称:</td>
<td>
<asp:TextBox ID="tb_name" runat="server" Width="200px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="tb_name"
ErrorMessage="**"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td>
课程学时:</td>
<td>
<asp:TextBox ID="tb_period" runat="server" Width="200px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="tb_period"
ErrorMessage="**"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="必须为数字" Operator="dataTypeCheck" Type="Integer" ControlToValidate="tb_period"></asp:CompareValidator></td>
</tr>
<tr>
<td>
课程学分:</td>
<td>
<asp:TextBox ID="tb_credit" runat="server" Width="200px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="tb_credit"
ErrorMessage="**"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator2" runat="server" Display="Dynamic" ErrorMessage="必须为数字" Operator="dataTypeCheck" Type="Integer" ControlToValidate="tb_credit"></asp:CompareValidator></td>
</tr>
<tr>
<td>
起始结束周:</td>
<td>
<asp:TextBox ID="tb_startToEnd" runat="server" Width="200px"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="tb_startToEnd" ValidationExpression="^(\d{0,1})-(\d{1,2})$" ErrorMessage="格式如:1-18"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
课程类型:</td>
<td>
<asp:DropDownList ID="DropDownList1" runat="server" Width="145px">
<asp:ListItem Value = "0" Text="基础课"></asp:ListItem>
<asp:ListItem Value = "1" Text="专业课"></asp:ListItem>
<asp:ListItem Value = "2" Text="公选课"></asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td>
课程描述:</td>
<td>
<asp:TextBox ID="tb_describe" runat="server" TextMode="multiLine" MaxLength="200" Height="123px" Width="311px"></asp:TextBox>(200个字符以内)
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="tb_describe"
ErrorMessage="**"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td>
</td>
<td>
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" Text="保 存" Width="66px" />
<asp:Button ID="btnCancel" runat="server" CausesValidation="False" OnClick="btnCancel_Click"
Text="重 置" /></td>
</tr>
</table>
后台代码:
BaseClass bc = new BaseClass();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds = bc.GetDataSet("select * from [course] where course_id='" + Request.QueryString["course_id"] + "'", "course");
DataRow[] row = ds.Tables[0].Select();
foreach (DataRow rs in row)
{
tb_id.Text = rs["course_id"].ToString();
tb_name.Text = rs["course_name"].ToString();
tb_period.Text = rs["course_period"].ToString();
tb_credit.Text = rs["course_credit"].ToString();
tb_startToEnd.Text = rs["startToEnd"].ToString();
DropDownList1.Text = rs["course_kind"].ToString();
tb_describe.Text = rs["course_describe"].ToString();
}
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
string str;
str = "UPDATE [course] SET course_id = '" + tb_id.Text + "', course_name = '" + tb_name.Text + "',course_period='" + tb_period.Text + "',course_credit='" + tb_credit.Text + "', startToEnd='" + tb_startToEnd.Text + "',course_kind='" + DropDownList1.SelectedValue + "',course_describe='" + tb_describe.Text + "' WHERE (course_id = '" + Request.QueryString["course_id"] + "')";
Boolean bl;
bl = bc.ExecSQL(str);
if (bl)
{
Response.Write(bc.MessageBox("课程信息更新成功!"));
Response.Write("<script>location='courseList.aspx'</script>");
}
else
{
Response.Write(bc.MessageBox("课程信息更新失败!"));
}
}
那另一边如何接受参数?
<asp:LinkButton id="Detail" runat="server" CommandName="Edit" ToolTip="查看并编辑记录">详细</asp:LinkButton>
<asp:LinkButton id="Delete" runat="server" CommandName="Delete" ToolTip="删除记录" OnClientClick="return confirm('确认要删除吗?');">删除</asp:LinkButton>
</ItemTemplate>在.cs文件下
string id = GridView1.DataKeys[e.RowIndex].Values[0].ToString();//在 GridView中的dataKeyNames下绑定一个字段,这里就是取你选择行的那个关键字段