前台:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SetGradeItemsRules.aspx.cs" Inherits="yjp_SetVoteRules" EnableEventValidation="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="80%" align="Center" cellpadding="0" cellspacing="0">
<tr>
<td> <asp:GridView Width="100%" ID="gv_GradeItem" runat="server" AutoGenerateColumns="False" ShowFooter="True" OnRowDataBound="gv_GradeItem_RowDataBound" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCommand="gv_GradeItem_RowCommand1" AllowPaging="True" OnPageIndexChanging="gv_GradeItem_PageIndexChanging">
<Columns>
<asp:TemplateField HeaderText="评分项">
<EditItemTemplate>
<asp:TextBox ID="txt_GradeItemName" runat="server" Text='<%# Bind("GradeItemName") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txt_GradeItemName" runat="server" Width="90%" ></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("GradeItemName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="总分">
<EditItemTemplate>
<asp:TextBox ID="txt_MaxPoint" runat="server" Text='<%# Bind("MaxPoint") %>' Width="87px"></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txt_MaxPoint" runat="server" Width="90%" ></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("MaxPoint") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="评分类型">
<EditItemTemplate>
<asp:DropDownList ID="ddl_DGradedType" runat="server" DataSourceID="SqlDataSource1" DataTextField="GradeTypeName" DataValueField="GradeTypeID" ></asp:DropDownList>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("GradeTypeID")%>' />
</EditItemTemplate>
<ItemTemplate>
<asp:DropDownList ID="ddl_DGradedType" runat="server" DataSourceID="SqlDataSource1" DataTextField="GradeTypeName" DataValueField="GradeTypeID" Enabled=false ></asp:DropDownList>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("GradeTypeID")%>' />
<%-- <asp:Label ID="lbl_type" runat="server" Text='.ToString()=="1"?"电脑评分":"专家评分" %>'></asp:Label>
--%> </ItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddl_GradedType" runat="server" DataSourceID="SqlDataSource1" DataTextField="GradeTypeName" DataValueField="GradeTypeID" Width="90%">
</asp:DropDownList>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<FooterTemplate>
<asp:Button ID="Button1" runat="server" Text="添加" OnClick="Button1_Click1" Font-Size="9pt" />
</FooterTemplate>
<ItemTemplate>
<asp:Button ID="btn_modify" runat="server" CommandName="Modify" Text="修改" Font-Size="9pt" />
<asp:Button ID="btn_del" runat="Server" CommandName="del" Text="删除" CommandArgument='<%#Eval("GradedItemID") %>' Font-Size="9pt"/>
<asp:Button ID="Button2" runat="server" Text="明细操作" CommandName="GradeRule" CommandArgument='<%#Eval("GradedItemID") %>' Font-Size="9pt" />
</ItemTemplate>
<EditItemTemplate>
<asp:Button ID="Button3" runat="server" Text="更新" CommandName="N_update" CommandArgument='<%#Eval("GradedItemID") %>' Font-Size="9pt" />
<asp:Button ID="Button4" runat="server" Text="取消" CommandName="N_Cancel" CommandArgument='<%#Eval("GradedItemID") %>' Font-Size="9pt"/>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle HorizontalAlign="Center" VerticalAlign="Middle" BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle HorizontalAlign="Center" VerticalAlign="Middle" BackColor="#EFF3FB" Font-Size="9pt" />
<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" Font-Size="9pt" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</td>
<td valign="top">
<asp:GridView Width="100%" ID="gv_GradeRules" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCommand="gv_GradeRules_RowCommand" ShowFooter="True" OnRowDataBound="gv_GradeRules_RowDataBound" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px">
<Columns>
<asp:TemplateField HeaderText="明细项">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%#Eval("GradedItemExplain") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("GradedItemExplain") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txt_GradedItemExplain" runat="server" Width="90%" ></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="分数">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%#Eval("GradePoint") %>' Width="90%"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%#Eval("GradePoint") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txt_Point" runat="server" Width="90%" ></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<FooterTemplate>
<asp:Button ID="Button1" runat="server" Text="添加" OnClick="btn_addGradeRules" Font-Size="9pt" />
</FooterTemplate>
<ItemTemplate>
<asp:Button ID="btn_modify" runat="server" CommandName="Modify" Text="修改" Font-Size="9pt" />
<asp:Button ID="btn_del" runat="Server" CommandName="del" Text="删除" CommandArgument='<%#Eval("GradeRuleID") %>' Font-Size="9pt"/>
<%-- <asp:Button ID="Button2" runat="server" Text="明细操作" CommandName="GradeRule" CommandArgument='<%#Eval("GradeRuleID") %>' />
--%> </ItemTemplate>
<EditItemTemplate>
<asp:Button ID="Button3" runat="server" Text="更新" CommandName="N_update" CommandArgument='<%#Eval("GradeRuleID") %>' Font-Size="9pt" />
<asp:Button ID="Button4" runat="server" Text="取消" CommandName="N_Cancel" CommandArgument='<%#Eval("GradeRuleID") %>' Font-Size="9pt"/>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" HorizontalAlign="Center" VerticalAlign="Middle" />
<RowStyle BackColor="#EFF3FB" Font-Size="9pt" HorizontalAlign="Center" VerticalAlign="Middle" />
<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" Font-Size="9pt" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</td>
</tr>
</table>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
</div>
</form>
</body>
</html>
后台:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class yjp_SetVoteRules : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
}
private void DDL_GradedType_DataBound()
{
SqlDataSource1.ConnectionString = CommonClass.ConnectionString;
SqlDataSource1.SelectCommand = "select * from Project_GradeTypes ";
}
public void gv_GradeItem_DataBound()
{
string selectString = "select GradedItemID,GradeItemName,GradeTypeID,Maxpoint from Project_GradedItems";// where GradeTypeID=0";// +ddl_GradeType.SelectedValue;
AheadDataSource.IAheadDataLinker linker = CommonClass.GetDataLinker();
System.Data.DataTable table = linker.GetDataFormString(selectString);
if (table.Rows.Count == 0)
{
DataRow dr = table.NewRow();
table.Rows.Add(dr);
}
gv_GradeItem.DataSource = table;
gv_GradeItem.DataBind();
}
protected void gv_GradeItem_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl_type = (DropDownList)e.Row.FindControl("ddl_DGradedType");
HiddenField hd = (HiddenField)e.Row.FindControl("HiddenField1");
ddl_type.SelectedValue = hd.Value;
// Button btn_del = (Button)e.Row.FindControl("btn_del");
// btn_del.Attributes.Add("onclick", "return confirm('此操作将删除所有依赖项!继续吗?')");
foreach (System.Web.UI.WebControls.TableCell cell in e.Row.Cells)
{
foreach (System.Web.UI.Control control in cell.Controls)
{
if (control is System.Web.UI.WebControls.Button)
{
System.Web.UI.WebControls.Button btn_del=(System.Web.UI.WebControls.Button)control;
if(btn_del.CommandName =="del" )
{
btn_del.Attributes.Add("onclick", "return confirm('此操作将删除所有依赖项!继续吗?')");
}
}
}
}
if (e.Row.Cells[0].Controls[1] is Label)
{
if (((Label)e.Row.Cells[0].Controls[1]).Text == string.Empty)
{
e.Row.Cells[2].Controls[1].Visible = false;
e.Row.Cells[3].Controls[1].Visible = false;
e.Row.Cells[3].Controls[3].Visible = false;
}
else
{
e.Row.Cells[2].Controls[1].Visible = true;
e.Row.Cells[3].Controls[1].Visible = true;
e.Row.Cells[3].Controls[3].Visible = true;
}
}
}
}
protected void Button1_Click1(object sender, EventArgs e)
{
TextBox txt_GradeItemName = (TextBox)gv_GradeItem.FooterRow.FindControl("txt_GradeItemName");
TextBox txt_MaxPoint = (TextBox)gv_GradeItem.FooterRow.FindControl("txt_MaxPoint");
DropDownList ddl_GradedType = (DropDownList)gv_GradeItem.FooterRow.FindControl("ddl_GradedType");
string insertGradeItems = "insert into Project_GradedItems (GradeItemName,ProjectID,GradeTypeID,MaxPoint) values" +
" (@name,@projectid,@type,@point)";
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(insertGradeItems, con);
com.Parameters.AddWithValue("@name", txt_GradeItemName.Text.Trim());
com.Parameters.AddWithValue("@projectid", CommonClass.GetProjectID(this));
com.Parameters.AddWithValue("@type", ddl_GradedType.SelectedValue);
com.Parameters.AddWithValue("@point", Convert.ToDecimal(txt_MaxPoint.Text.Trim()));
con.Open();
if (com.ExecuteNonQuery() > 0)
{
gv_GradeItem_DataBound();
DDL_GradedType_DataBound();
Response.Write("<script language='javascript'>alert('添加成功!')</script>");
}
con.Close();
}
protected void gv_GradeItem_RowCommand1(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Modify")
{
this.gv_GradeItem.EditIndex = ((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowIndex;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState=DataControlRowState.Edit;
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
if (e.CommandName == "N_update")
{
TextBox txt_EGradeItemName = (TextBox)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("txt_GradeItemName");
TextBox txt_EMaxPoint = (TextBox)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("txt_MaxPoint");
DropDownList ddl_DGradedType = (DropDownList)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("ddl_DGradedType");
UpdateGradeItem(txt_EGradeItemName.Text.Trim(), txt_EMaxPoint.Text.Trim(), ddl_DGradedType.SelectedValue, e.CommandArgument.ToString());
this.gv_GradeItem.EditIndex = -1;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Normal;
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
if (e.CommandName == "N_Cancel")
{
this.gv_GradeItem.EditIndex = -1;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Normal;
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
if (e.CommandName == "GradeRule")
{
ViewState["GradedItemID"] = e.CommandArgument.ToString();
gv_GradeRules_DataBind();
}
if(e.CommandName == "del")
{
if (IsExistGradeRules(e.CommandArgument.ToString()))
{
if (DeletGradeRules(e.CommandArgument.ToString(), 1))
{
if (DeleteGradeItem(e.CommandArgument.ToString()))
{
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
gv_GradeRules_DataBind();
Response.Write("<script language='javascript'>alert('删除成功!')</script>");
}
}
}
else
{
if (DeleteGradeItem(e.CommandArgument.ToString()))
{
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
gv_GradeRules_DataBind();
Response.Write("<script language='javascript'>alert('删除成功!')</script>");
}
}
}
}
public bool IsExistGradeRules(string GradedItemID)
{
string slecectGradeRules = "select GradeRuleID from Project_GradeRules where GradedItemID=" + GradedItemID;
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(slecectGradeRules, con);
con.Open();
if (com.ExecuteScalar() != null)
{
con.Close();
return true;
}
else
{
con.Close();
return false;
}
}
public bool DeleteGradeItem(string GradeItemID)
{
string deletestring = "delete from Project_GradedItems where GradedItemID=" + GradeItemID;
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(deletestring, con);
con.Open();
if (com.ExecuteNonQuery() > 0)
{
con.Close();
return true;
}
else
{
con.Close();
return false;
}
}
public bool DeletGradeRules(string GradeRuleID,int sign)
{
string deletestring = "";
if (sign == 1)
{
deletestring = "delete from Project_GradeRules where GradedItemID=" + GradeRuleID;
}
else if (sign == 2)
{
deletestring = "delete from Project_GradeRules where GradeRuleID=" + GradeRuleID;
}
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(deletestring, con);
con.Open();
if (com.ExecuteNonQuery() > 0)
{
con.Close();
return true;
}
else
{
con.Close();
return false;
}
}
public void gv_GradeRules_DataBind()
{
string selectString = "";
if (ViewState["GradedItemID"] == null)
{
selectString = "select GradeRuleID,GradedItemExplain,GradePoint from Project_GradeRules where GradedItemID=0"; //+ ViewState["GradedItemID"].ToString();
}
else
{
selectString = "select GradeRuleID,GradedItemExplain,GradePoint from Project_GradeRules where GradedItemID=" + ViewState["GradedItemID"].ToString();
}
AheadDataSource.IAheadDataLinker linker = CommonClass.GetDataLinker();
System.Data.DataTable table = linker.GetDataFormString(selectString);
if (table.Rows.Count == 0)
{
DataRow dr = table.NewRow();
table.Rows.Add(dr);
}
gv_GradeRules.DataSource = table;
gv_GradeRules.DataBind();
}
protected void UpdateGradeItem(string name,string point,string typeid,string gradeitemid)
{
string updateString = "update Project_GradedItems set GradeItemName='" + name + "',GradeTypeID="+typeid+",MaxPoint=" + point+ " where GradedItemID="+gradeitemid;
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(updateString, con);
con.Open();
com.ExecuteNonQuery();
con.Close();
}
protected void gv_GradeItem_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.gv_GradeItem.PageIndex = e.NewPageIndex;
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
protected void gv_GradeRules_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Modify")
{
this.gv_GradeRules.EditIndex = ((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowIndex;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Edit;
gv_GradeRules_DataBind();
}
if (e.CommandName == "N_update")
{
TextBox txt_EGradeItemName = (TextBox)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("TextBox1");
TextBox txt_EMaxPoint = (TextBox)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("TextBox2");
UpdateGradeRules( ViewState["GradedItemID"].ToString(),txt_EGradeItemName.Text.Trim(), txt_EMaxPoint.Text.Trim(), e.CommandArgument.ToString());
this.gv_GradeRules.EditIndex = -1;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Normal;
gv_GradeRules_DataBind();
}
if (e.CommandName == "N_Cancel")
{
this.gv_GradeRules.EditIndex = -1;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Normal;
gv_GradeRules_DataBind();
}
if (e.CommandName == "GradeRule")
{
ViewState["GradedItemID"] = e.CommandArgument.ToString();
gv_GradeRules_DataBind();
}
if (e.CommandName == "del")
{
if (DeletGradeRules(e.CommandArgument.ToString(), 2))
{
Response.Write("<script language='javascript'>alert('删除成功!')</script>");
gv_GradeRules_DataBind();
}
}
}
protected void UpdateGradeRules(string gradeditemid,string gradeditemexplain,string point,string graderuleid )
{
string updateString = "update Project_GradeRules set GradedItemID=" + gradeditemid + ",GradedItemExplain='" + gradeditemexplain + "',GradePoint=" + point + " where GradeRuleID=" + graderuleid;
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(updateString, con);
con.Open();
com.ExecuteNonQuery();
con.Close();
}
protected void btn_addGradeRules(object sender, EventArgs e)
{
TextBox txt_GradeItemName = (TextBox)gv_GradeRules.FooterRow.FindControl("txt_GradedItemExplain");
TextBox txt_MaxPoint = (TextBox)gv_GradeRules.FooterRow.FindControl("txt_Point");
// DropDownList ddl_GradedType = (DropDownList)gv_GradeItem.FooterRow.FindControl("ddl_GradedType");
string insertGradeItems = "insert into Project_GradeRules (GradedItemID,GradedItemExplain,GradePoint) values" +
" (@gradeditemid,@gradeditemexplain,@point)";
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(insertGradeItems, con);
com.Parameters.AddWithValue("@gradeditemid", ViewState["GradedItemID"].ToString());
com.Parameters.AddWithValue("@gradeditemexplain", txt_GradeItemName.Text.Trim());
com.Parameters.AddWithValue("@point", Convert.ToDecimal(txt_MaxPoint.Text.Trim()));
con.Open();
if (com.ExecuteNonQuery() > 0)
{
gv_GradeRules_DataBind();
Response.Write("<script language='javascript'>alert('添加成功!')</script>");
}
con.Close();
}
protected void gv_GradeRules_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button btn_del = (Button)e.Row.FindControl("btn_del");
btn_del.Attributes.Add("onclick", "return confirm('此操作将删除所有依赖项!继续吗?')");
if (e.Row.Cells[0].Controls[1] is Label)
{
if (((Label)e.Row.Cells[0].Controls[1]).Text == string.Empty)
{
e.Row.Cells[2].Controls[1].Visible = false;
e.Row.Cells[2].Controls[3].Visible = false;
}
else
{
e.Row.Cells[2].Controls[1].Visible = true;
e.Row.Cells[2].Controls[3].Visible = true;
}
}
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SetGradeItemsRules.aspx.cs" Inherits="yjp_SetVoteRules" EnableEventValidation="false"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="80%" align="Center" cellpadding="0" cellspacing="0">
<tr>
<td> <asp:GridView Width="100%" ID="gv_GradeItem" runat="server" AutoGenerateColumns="False" ShowFooter="True" OnRowDataBound="gv_GradeItem_RowDataBound" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCommand="gv_GradeItem_RowCommand1" AllowPaging="True" OnPageIndexChanging="gv_GradeItem_PageIndexChanging">
<Columns>
<asp:TemplateField HeaderText="评分项">
<EditItemTemplate>
<asp:TextBox ID="txt_GradeItemName" runat="server" Text='<%# Bind("GradeItemName") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txt_GradeItemName" runat="server" Width="90%" ></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("GradeItemName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="总分">
<EditItemTemplate>
<asp:TextBox ID="txt_MaxPoint" runat="server" Text='<%# Bind("MaxPoint") %>' Width="87px"></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txt_MaxPoint" runat="server" Width="90%" ></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("MaxPoint") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="评分类型">
<EditItemTemplate>
<asp:DropDownList ID="ddl_DGradedType" runat="server" DataSourceID="SqlDataSource1" DataTextField="GradeTypeName" DataValueField="GradeTypeID" ></asp:DropDownList>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("GradeTypeID")%>' />
</EditItemTemplate>
<ItemTemplate>
<asp:DropDownList ID="ddl_DGradedType" runat="server" DataSourceID="SqlDataSource1" DataTextField="GradeTypeName" DataValueField="GradeTypeID" Enabled=false ></asp:DropDownList>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("GradeTypeID")%>' />
<%-- <asp:Label ID="lbl_type" runat="server" Text='.ToString()=="1"?"电脑评分":"专家评分" %>'></asp:Label>
--%> </ItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="ddl_GradedType" runat="server" DataSourceID="SqlDataSource1" DataTextField="GradeTypeName" DataValueField="GradeTypeID" Width="90%">
</asp:DropDownList>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<FooterTemplate>
<asp:Button ID="Button1" runat="server" Text="添加" OnClick="Button1_Click1" Font-Size="9pt" />
</FooterTemplate>
<ItemTemplate>
<asp:Button ID="btn_modify" runat="server" CommandName="Modify" Text="修改" Font-Size="9pt" />
<asp:Button ID="btn_del" runat="Server" CommandName="del" Text="删除" CommandArgument='<%#Eval("GradedItemID") %>' Font-Size="9pt"/>
<asp:Button ID="Button2" runat="server" Text="明细操作" CommandName="GradeRule" CommandArgument='<%#Eval("GradedItemID") %>' Font-Size="9pt" />
</ItemTemplate>
<EditItemTemplate>
<asp:Button ID="Button3" runat="server" Text="更新" CommandName="N_update" CommandArgument='<%#Eval("GradedItemID") %>' Font-Size="9pt" />
<asp:Button ID="Button4" runat="server" Text="取消" CommandName="N_Cancel" CommandArgument='<%#Eval("GradedItemID") %>' Font-Size="9pt"/>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle HorizontalAlign="Center" VerticalAlign="Middle" BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle HorizontalAlign="Center" VerticalAlign="Middle" BackColor="#EFF3FB" Font-Size="9pt" />
<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" Font-Size="9pt" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</td>
<td valign="top">
<asp:GridView Width="100%" ID="gv_GradeRules" runat="server" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCommand="gv_GradeRules_RowCommand" ShowFooter="True" OnRowDataBound="gv_GradeRules_RowDataBound" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px">
<Columns>
<asp:TemplateField HeaderText="明细项">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%#Eval("GradedItemExplain") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("GradedItemExplain") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txt_GradedItemExplain" runat="server" Width="90%" ></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="分数">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%#Eval("GradePoint") %>' Width="90%"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%#Eval("GradePoint") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txt_Point" runat="server" Width="90%" ></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="操作">
<FooterTemplate>
<asp:Button ID="Button1" runat="server" Text="添加" OnClick="btn_addGradeRules" Font-Size="9pt" />
</FooterTemplate>
<ItemTemplate>
<asp:Button ID="btn_modify" runat="server" CommandName="Modify" Text="修改" Font-Size="9pt" />
<asp:Button ID="btn_del" runat="Server" CommandName="del" Text="删除" CommandArgument='<%#Eval("GradeRuleID") %>' Font-Size="9pt"/>
<%-- <asp:Button ID="Button2" runat="server" Text="明细操作" CommandName="GradeRule" CommandArgument='<%#Eval("GradeRuleID") %>' />
--%> </ItemTemplate>
<EditItemTemplate>
<asp:Button ID="Button3" runat="server" Text="更新" CommandName="N_update" CommandArgument='<%#Eval("GradeRuleID") %>' Font-Size="9pt" />
<asp:Button ID="Button4" runat="server" Text="取消" CommandName="N_Cancel" CommandArgument='<%#Eval("GradeRuleID") %>' Font-Size="9pt"/>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" HorizontalAlign="Center" VerticalAlign="Middle" />
<RowStyle BackColor="#EFF3FB" Font-Size="9pt" HorizontalAlign="Center" VerticalAlign="Middle" />
<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" Font-Size="9pt" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</td>
</tr>
</table>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
</div>
</form>
</body>
</html>
后台:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class yjp_SetVoteRules : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
}
private void DDL_GradedType_DataBound()
{
SqlDataSource1.ConnectionString = CommonClass.ConnectionString;
SqlDataSource1.SelectCommand = "select * from Project_GradeTypes ";
}
public void gv_GradeItem_DataBound()
{
string selectString = "select GradedItemID,GradeItemName,GradeTypeID,Maxpoint from Project_GradedItems";// where GradeTypeID=0";// +ddl_GradeType.SelectedValue;
AheadDataSource.IAheadDataLinker linker = CommonClass.GetDataLinker();
System.Data.DataTable table = linker.GetDataFormString(selectString);
if (table.Rows.Count == 0)
{
DataRow dr = table.NewRow();
table.Rows.Add(dr);
}
gv_GradeItem.DataSource = table;
gv_GradeItem.DataBind();
}
protected void gv_GradeItem_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl_type = (DropDownList)e.Row.FindControl("ddl_DGradedType");
HiddenField hd = (HiddenField)e.Row.FindControl("HiddenField1");
ddl_type.SelectedValue = hd.Value;
// Button btn_del = (Button)e.Row.FindControl("btn_del");
// btn_del.Attributes.Add("onclick", "return confirm('此操作将删除所有依赖项!继续吗?')");
foreach (System.Web.UI.WebControls.TableCell cell in e.Row.Cells)
{
foreach (System.Web.UI.Control control in cell.Controls)
{
if (control is System.Web.UI.WebControls.Button)
{
System.Web.UI.WebControls.Button btn_del=(System.Web.UI.WebControls.Button)control;
if(btn_del.CommandName =="del" )
{
btn_del.Attributes.Add("onclick", "return confirm('此操作将删除所有依赖项!继续吗?')");
}
}
}
}
if (e.Row.Cells[0].Controls[1] is Label)
{
if (((Label)e.Row.Cells[0].Controls[1]).Text == string.Empty)
{
e.Row.Cells[2].Controls[1].Visible = false;
e.Row.Cells[3].Controls[1].Visible = false;
e.Row.Cells[3].Controls[3].Visible = false;
}
else
{
e.Row.Cells[2].Controls[1].Visible = true;
e.Row.Cells[3].Controls[1].Visible = true;
e.Row.Cells[3].Controls[3].Visible = true;
}
}
}
}
protected void Button1_Click1(object sender, EventArgs e)
{
TextBox txt_GradeItemName = (TextBox)gv_GradeItem.FooterRow.FindControl("txt_GradeItemName");
TextBox txt_MaxPoint = (TextBox)gv_GradeItem.FooterRow.FindControl("txt_MaxPoint");
DropDownList ddl_GradedType = (DropDownList)gv_GradeItem.FooterRow.FindControl("ddl_GradedType");
string insertGradeItems = "insert into Project_GradedItems (GradeItemName,ProjectID,GradeTypeID,MaxPoint) values" +
" (@name,@projectid,@type,@point)";
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(insertGradeItems, con);
com.Parameters.AddWithValue("@name", txt_GradeItemName.Text.Trim());
com.Parameters.AddWithValue("@projectid", CommonClass.GetProjectID(this));
com.Parameters.AddWithValue("@type", ddl_GradedType.SelectedValue);
com.Parameters.AddWithValue("@point", Convert.ToDecimal(txt_MaxPoint.Text.Trim()));
con.Open();
if (com.ExecuteNonQuery() > 0)
{
gv_GradeItem_DataBound();
DDL_GradedType_DataBound();
Response.Write("<script language='javascript'>alert('添加成功!')</script>");
}
con.Close();
}
protected void gv_GradeItem_RowCommand1(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Modify")
{
this.gv_GradeItem.EditIndex = ((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowIndex;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState=DataControlRowState.Edit;
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
if (e.CommandName == "N_update")
{
TextBox txt_EGradeItemName = (TextBox)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("txt_GradeItemName");
TextBox txt_EMaxPoint = (TextBox)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("txt_MaxPoint");
DropDownList ddl_DGradedType = (DropDownList)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("ddl_DGradedType");
UpdateGradeItem(txt_EGradeItemName.Text.Trim(), txt_EMaxPoint.Text.Trim(), ddl_DGradedType.SelectedValue, e.CommandArgument.ToString());
this.gv_GradeItem.EditIndex = -1;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Normal;
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
if (e.CommandName == "N_Cancel")
{
this.gv_GradeItem.EditIndex = -1;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Normal;
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
if (e.CommandName == "GradeRule")
{
ViewState["GradedItemID"] = e.CommandArgument.ToString();
gv_GradeRules_DataBind();
}
if(e.CommandName == "del")
{
if (IsExistGradeRules(e.CommandArgument.ToString()))
{
if (DeletGradeRules(e.CommandArgument.ToString(), 1))
{
if (DeleteGradeItem(e.CommandArgument.ToString()))
{
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
gv_GradeRules_DataBind();
Response.Write("<script language='javascript'>alert('删除成功!')</script>");
}
}
}
else
{
if (DeleteGradeItem(e.CommandArgument.ToString()))
{
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
gv_GradeRules_DataBind();
Response.Write("<script language='javascript'>alert('删除成功!')</script>");
}
}
}
}
public bool IsExistGradeRules(string GradedItemID)
{
string slecectGradeRules = "select GradeRuleID from Project_GradeRules where GradedItemID=" + GradedItemID;
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(slecectGradeRules, con);
con.Open();
if (com.ExecuteScalar() != null)
{
con.Close();
return true;
}
else
{
con.Close();
return false;
}
}
public bool DeleteGradeItem(string GradeItemID)
{
string deletestring = "delete from Project_GradedItems where GradedItemID=" + GradeItemID;
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(deletestring, con);
con.Open();
if (com.ExecuteNonQuery() > 0)
{
con.Close();
return true;
}
else
{
con.Close();
return false;
}
}
public bool DeletGradeRules(string GradeRuleID,int sign)
{
string deletestring = "";
if (sign == 1)
{
deletestring = "delete from Project_GradeRules where GradedItemID=" + GradeRuleID;
}
else if (sign == 2)
{
deletestring = "delete from Project_GradeRules where GradeRuleID=" + GradeRuleID;
}
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(deletestring, con);
con.Open();
if (com.ExecuteNonQuery() > 0)
{
con.Close();
return true;
}
else
{
con.Close();
return false;
}
}
public void gv_GradeRules_DataBind()
{
string selectString = "";
if (ViewState["GradedItemID"] == null)
{
selectString = "select GradeRuleID,GradedItemExplain,GradePoint from Project_GradeRules where GradedItemID=0"; //+ ViewState["GradedItemID"].ToString();
}
else
{
selectString = "select GradeRuleID,GradedItemExplain,GradePoint from Project_GradeRules where GradedItemID=" + ViewState["GradedItemID"].ToString();
}
AheadDataSource.IAheadDataLinker linker = CommonClass.GetDataLinker();
System.Data.DataTable table = linker.GetDataFormString(selectString);
if (table.Rows.Count == 0)
{
DataRow dr = table.NewRow();
table.Rows.Add(dr);
}
gv_GradeRules.DataSource = table;
gv_GradeRules.DataBind();
}
protected void UpdateGradeItem(string name,string point,string typeid,string gradeitemid)
{
string updateString = "update Project_GradedItems set GradeItemName='" + name + "',GradeTypeID="+typeid+",MaxPoint=" + point+ " where GradedItemID="+gradeitemid;
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(updateString, con);
con.Open();
com.ExecuteNonQuery();
con.Close();
}
protected void gv_GradeItem_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
this.gv_GradeItem.PageIndex = e.NewPageIndex;
DDL_GradedType_DataBound();
gv_GradeItem_DataBound();
}
protected void gv_GradeRules_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Modify")
{
this.gv_GradeRules.EditIndex = ((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowIndex;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Edit;
gv_GradeRules_DataBind();
}
if (e.CommandName == "N_update")
{
TextBox txt_EGradeItemName = (TextBox)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("TextBox1");
TextBox txt_EMaxPoint = (TextBox)((GridViewRow)(((Button)e.CommandSource)).Parent.Parent).FindControl("TextBox2");
UpdateGradeRules( ViewState["GradedItemID"].ToString(),txt_EGradeItemName.Text.Trim(), txt_EMaxPoint.Text.Trim(), e.CommandArgument.ToString());
this.gv_GradeRules.EditIndex = -1;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Normal;
gv_GradeRules_DataBind();
}
if (e.CommandName == "N_Cancel")
{
this.gv_GradeRules.EditIndex = -1;
((GridViewRow)((Button)e.CommandSource).Parent.Parent).RowState = DataControlRowState.Normal;
gv_GradeRules_DataBind();
}
if (e.CommandName == "GradeRule")
{
ViewState["GradedItemID"] = e.CommandArgument.ToString();
gv_GradeRules_DataBind();
}
if (e.CommandName == "del")
{
if (DeletGradeRules(e.CommandArgument.ToString(), 2))
{
Response.Write("<script language='javascript'>alert('删除成功!')</script>");
gv_GradeRules_DataBind();
}
}
}
protected void UpdateGradeRules(string gradeditemid,string gradeditemexplain,string point,string graderuleid )
{
string updateString = "update Project_GradeRules set GradedItemID=" + gradeditemid + ",GradedItemExplain='" + gradeditemexplain + "',GradePoint=" + point + " where GradeRuleID=" + graderuleid;
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(updateString, con);
con.Open();
com.ExecuteNonQuery();
con.Close();
}
protected void btn_addGradeRules(object sender, EventArgs e)
{
TextBox txt_GradeItemName = (TextBox)gv_GradeRules.FooterRow.FindControl("txt_GradedItemExplain");
TextBox txt_MaxPoint = (TextBox)gv_GradeRules.FooterRow.FindControl("txt_Point");
// DropDownList ddl_GradedType = (DropDownList)gv_GradeItem.FooterRow.FindControl("ddl_GradedType");
string insertGradeItems = "insert into Project_GradeRules (GradedItemID,GradedItemExplain,GradePoint) values" +
" (@gradeditemid,@gradeditemexplain,@point)";
SqlConnection con = new SqlConnection(CommonClass.ConnectionString);
SqlCommand com = new SqlCommand(insertGradeItems, con);
com.Parameters.AddWithValue("@gradeditemid", ViewState["GradedItemID"].ToString());
com.Parameters.AddWithValue("@gradeditemexplain", txt_GradeItemName.Text.Trim());
com.Parameters.AddWithValue("@point", Convert.ToDecimal(txt_MaxPoint.Text.Trim()));
con.Open();
if (com.ExecuteNonQuery() > 0)
{
gv_GradeRules_DataBind();
Response.Write("<script language='javascript'>alert('添加成功!')</script>");
}
con.Close();
}
protected void gv_GradeRules_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button btn_del = (Button)e.Row.FindControl("btn_del");
btn_del.Attributes.Add("onclick", "return confirm('此操作将删除所有依赖项!继续吗?')");
if (e.Row.Cells[0].Controls[1] is Label)
{
if (((Label)e.Row.Cells[0].Controls[1]).Text == string.Empty)
{
e.Row.Cells[2].Controls[1].Visible = false;
e.Row.Cells[2].Controls[3].Visible = false;
}
else
{
e.Row.Cells[2].Controls[1].Visible = true;
e.Row.Cells[2].Controls[3].Visible = true;
}
}
}
}
}