数据表有一个列,ispass,值是1/0
我加一个模板列button,如果是1的,button的test就是"已经审核",反之如果是0就是未审
然后,我点这个按钮,点一次,未审变已审,已审变未审各位达人没时间定代码,请说一下方法和贴些关键代码出来
求代码,不感感激!!
我加一个模板列button,如果是1的,button的test就是"已经审核",反之如果是0就是未审
然后,我点这个按钮,点一次,未审变已审,已审变未审各位达人没时间定代码,请说一下方法和贴些关键代码出来
求代码,不感感激!!
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
string sID="";
if (e.CommandName.Equals("IsPass"))
{
//GridViewRow row = GridView1.Rows[Convert.ToInt32(e.CommandArgument)];
//sID = row.Cells[2].Text.ToString();
Page.RegisterStartupScript("", "<script>alert('"+sID+"')</script>");
//Student stu = new Student();
//stu.StuId = sID;
//int IsPass;
//if(int.Parse(stu.StuIsPass)==1)
//{
// IsPass=0;
//}
//else
//{
// IsPass=1;
//}
//stu.StuIsPass = IsPass.ToString();
}
}我点这个按钮说是格式不对,该怎么写?
能把模版列按钮的HTML代码帖出来吗?
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 33: if (e.CommandName.Equals("IsPass"))
行 34: {
行 35: GridViewRow row = GridView1.Rows[Convert.ToInt32(e.CommandArgument)];
行 36: sID = row.Cells[2].Text.ToString();
行 37: Page.RegisterStartupScript("", "<script>alert('"+sID+"')</script>");
源文件: e:\files\wwwroot\StudentDB\admin\student.aspx.cs 行: 35
AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="SqlDataSource1"
PageSize="20" ShowFooter="True" CellPadding="4" ForeColor="#333333" GridLines="None" Font-Size="Small" Width="100%" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="选择">
<FooterTemplate>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="删除" />
</FooterTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" Visible="False" />
<asp:BoundField DataField="stu_name" HeaderText="学生姓名" SortExpression="stu_name" />
<asp:BoundField DataField="stu_sex" HeaderText="性别" SortExpression="stu_sex" />
<asp:BoundField DataField="stu_SchRec" HeaderText="学历证号" SortExpression="stu_SchRec" />
<asp:BoundField DataField="sch_name" HeaderText="学校名称" SortExpression="sch_name" />
<asp:BoundField DataField="sch_type" HeaderText="类型/界数" SortExpression="stu_type" />
<asp:BoundField DataField="submitDate" DataFormatString="{0:d}" HeaderText="录入时间"
HtmlEncode="False" SortExpression="submitDate" />
<asp:BoundField DataField="username" HeaderText="录入人" SortExpression="username" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button2" runat="server" CommandName="IsPass" Text='<%# Eval("ispass").ToString() == "1" ? "已审" : "未审" %>'
/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" Target="_blank" NavigateUrl='<%# "studentedit.aspx?id="+Eval("id") %>'
Text="编辑"></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="IsPass" HeaderText="IsPass" SortExpression="IsPass" Visible="False" />
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<EditRowStyle BackColor="#2461BF" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
但GridView的模板列Button 并未指定CommandArgument 所以取出的数据为空,转为int时失败<asp:Button ID="Button2" runat="server" CommandArgument='<%# Eval("id") %>' CommandName="IsPass" Text='<%# Eval("ispass").ToString() == "1" ? "已审" : "未审" %>'
/> //指定CommandArgument值为id
e.CommandArgument 就是获取当前点击按钮对应数据的ID
参数名: index
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
参数名: index源错误:
行 37: if (e.CommandName.Equals("IsPass"))
行 38: {
行 39: GridViewRow row = GridView1.Rows[Convert.ToInt32(e.CommandArgument)];
行 40: sID = row.Cells[1].Text.ToString();
行 41: // //Student stu = new Student();