C# 通过代码更新GridView中的项
我有一个GV,我想在其中更新我的项目。我没有使用LDS或任何东西,因为我正在更新存储在多个数据库中的项目 以下是我的GV的标记:C# 通过代码更新GridView中的项,c#,asp.net,linq-to-sql,gridview,C#,Asp.net,Linq To Sql,Gridview,我有一个GV,我想在其中更新我的项目。我没有使用LDS或任何东西,因为我正在更新存储在多个数据库中的项目 以下是我的GV的标记: <asp:GridView runat="server" Height="233px" Width="602px" ID ="gvShowComm" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowEditing = "gvShowComm_RowEditing"
<asp:GridView runat="server" Height="233px" Width="602px" ID ="gvShowComm"
CellPadding="4" ForeColor="#333333" GridLines="None" OnRowEditing = "gvShowComm_RowEditing"
OnRowUpdating = "gvShowComm_RowUpdating"
OnRowCancelingEdit = "gvShowComm_RowCancelingEdit">
<Columns>
<asp:CommandField ShowCancelButton="True" ShowEditButton="True" />
<asp:TemplateField HeaderText = "Product ID">
<EditItemTemplate>
<asp:TextBox ID = "ProductName" runat = "server" Text ='<%# Bind("Product_ID") %>'/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID = "ProductName" runat = "server" Text ='<%# Bind("Product_ID") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText = "Plan Name">
<EditItemTemplate>
<asp:TextBox ID = "PlanName" runat = "server" Text ='<%# Bind("PlanName") %>'/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID = "PlanName" runat = "server" Text ='<%# Bind("PlanName") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText = "1st Yr Comm">
<EditItemTemplate>
<asp:TextBox ID = "HiComm" runat = "server" Text ='<%# Bind("HiCommissionOld") %>'/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID = "HiComm" runat = "server" Text ='<%# Bind("HiCommissionOld") %>'/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText = "2nd Yr Comm">
<EditItemTemplate>
<asp:TextBox ID = "LowComm" runat = "server" Text ='<%# Bind("LowCommissionOld") %>'/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID = "LowComm" runat = "server" Text ='<%# Bind("LowCommissionOld") %>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EditRowStyle BackColor="#999999" />
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#E9E7E2" />
<SortedAscendingHeaderStyle BackColor="#506C8C" />
<SortedDescendingCellStyle BackColor="#FFFDF8" />
<SortedDescendingHeaderStyle BackColor="#6F8DAE" />
</asp:GridView>
下面是我一直在尝试的代码,但我无法在我的's'变量中获得更新的文本:
protected void Page_Load(object sender, EventArgs e)
{
if (Session["EntitySelected"] == null)
{
MessageBox.Show("Please Select an Entity first!");
Response.Redirect("~/FrontEnd/AgentList.aspx");
}
int getEntity = Int16.Parse(Session["EntitySelected"].ToString());
this.Label3.Text = "You Selected Entity: " + (string)Session["EntitySelected"];
dbWebEnrollDataContext dt1 = new dbWebEnrollDataContext(); //This has PlanName!
CommissionsV2DataContext cv1 = new CommissionsV2DataContext(); //Entity_Product_Point
var td = from s in GetEntity()
join r in GetPlanName() on s.Product_ID equals r.Product_ID
where s.Entity_ID == getEntity
select new
{
s.Product_ID,
r.PlanName,
s.HiCommissionOld,
s.LowCommissionOld
};
gvShowComm.DataSource = td;
gvShowComm.DataBind();
}
static IEnumerable<Entity_Product_Point> GetEntity()
{
var context = new CommissionsV2DataContext();
return (from t in context.Entity_Product_Points select t).AsQueryable();
}
static IEnumerable<PlanMaster> GetPlanName()
{
var context = new dbWebEnrollDataContext();
return (from t in context.PlanMasters select t).AsQueryable();
}
protected void btnAdd_Click(object sender, EventArgs e)
{
if (ddlPlan.SelectedValue != null && tb1stYr.Text != "" && tbMaximum.Text != "" && tbRecurring.Text != "")
{
//Accessing Variables and defining them.
using (dbWebEnrollDataContext dt = new dbWebEnrollDataContext())
try
{
int getEntity = Int16.Parse(Session["EntitySelected"].ToString());
var productName = ddlPlan.SelectedValue.ToString();
decimal firststYrComp = Int16.Parse(tb1stYr.Text.ToString());
decimal recurringComp = Int16.Parse(tbRecurring.Text.ToString());
decimal maximumPercent = Int16.Parse(tbMaximum.Text.ToString());
//Pulling the Product_ID from the PlanMaster Table from WebEnroll DB!
//var tr = dt.PlanMasters.First(s => s.PlanName == productName);
var tr = from s in dt.PlanMasters
where s.PlanName == productName
select s.Product_ID;
decimal finalFirstYrComp = decimal.Round((firststYrComp / maximumPercent), 3);
decimal finalRecurringComp = decimal.Round((recurringComp / maximumPercent), 3);
//Updating the Table: Entity_Product_Points in CommissionsV2 DB.
CommissionsV2DataContext cv = new CommissionsV2DataContext();
Entity_Product_Point ev = new Entity_Product_Point();
ev.Entity_ID = getEntity;
ev.Product_ID = tr.First();
ev.HiCommissionOld = (double)firststYrComp;
ev.LowCommissionOld = (double)recurringComp;
ev.HiCommission = (double)finalFirstYrComp * 100;
ev.LowCommission = (double)finalRecurringComp * 100;
ev.DateCreated = System.DateTime.Now;
cv.Entity_Product_Points.InsertOnSubmit(ev);
cv.SubmitChanges();
var td = from s in GetEntity()
join r in GetPlanName() on s.Product_ID equals r.Product_ID
where s.Entity_ID == getEntity
select new
{
s.Product_ID,
r.PlanName,
s.HiCommissionOld,
s.LowCommissionOld
};
gvShowComm.DataSource = td;
gvShowComm.DataBind();
}
catch (Exception err)
{
MessageBox.Show("" + err);
}
}
else
{
MessageBox.Show("Please Enter Entry for the textboxes!");
}
tb1stYr.Text = "";
tbMaximum.Text = "";
tbRecurring.Text = "";
ddlPlan.SelectedIndex = 0;
}
protected void gvShowComm_RowEditing(object sender, GridViewEditEventArgs e)
{
gvShowComm.EditIndex = e.NewEditIndex;
gvShowComm.DataBind();
}
protected void gvShowComm_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvShowComm.EditIndex = -1;
gvShowComm.DataBind();
}
protected void gvShowComm_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
System.Web.UI.WebControls.TextBox myBox = gvShowComm.Rows[e.RowIndex].FindControl("PlanName") as System.Web.UI.WebControls.TextBox;
string s = myBox.Text;
gvShowComm.DataBind();
}
}
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(会话[“EntitySelected”]==null)
{
Show(“请先选择一个实体!”);
重定向(“~/FrontEnd/AgentList.aspx”);
}
int getEntity=Int16.Parse(会话[“EntitySelected”].ToString());
this.Label3.Text=“您选择了实体:”+(字符串)会话[“EntitySelected”];
dbWebEnrollDataContext dt1=新的dbWebEnrollDataContext();//这有PlanName!
CommissionsV2DataContext cv1=新CommissionsV2DataContext();//实体\产品\点
var td=来自GetEntity()中的s
在s.Product\u ID等于r.Product\u ID的GetPlanName()中加入r
其中s.Entity_ID==getEntity
选择新的
{
s、 产品标识,
r、 PlanName,
s、 HiCommissionOld,
s、 低电荷二极管
};
gvShowComm.DataSource=td;
gvShowComm.DataBind();
}
静态IEnumerable GetEntity()
{
var context=newcommissionv2datacontext();
返回(从context.Entity_Product_Points中的t选择t).AsQueryable();
}
静态IEnumerable GetPlanName()
{
var context=new dbWebEnrollDataContext();
返回(从context.PlanMasters中的t选择t).AsQueryable();
}
受保护的无效btnAdd_单击(对象发送者,事件参数e)
{
如果(ddlPlan.SelectedValue!=null&&tb1stYr.Text!=“”&&tbmax.Text!=“”&&tbrecurrence.Text!=“”)
{
//访问变量并定义它们。
使用(dbWebEnrollDataContext dt=new dbWebEnrollDataContext())
尝试
{
int getEntity=Int16.Parse(会话[“EntitySelected”].ToString());
var productName=ddlPlan.SelectedValue.ToString();
decimal firststYrComp=Int16.Parse(tb1stYr.Text.ToString());
decimal recurringComp=Int16.Parse(tbrecurging.Text.ToString());
decimal maximumPercent=Int16.Parse(tbmax.Text.ToString());
//从WebEnroll DB从PlanMaster表中提取产品\u ID!
//var tr=dt.PlanMasters.First(s=>s.PlanName==productName);
var tr=来自dt中的s
其中s.PlanName==productName
选择s.Product\u ID;
decimal finalFirstYrComp=十进制四舍五入((第一个StyrComp/maximumPercent),3);
decimal finalRecurringComp=十进制四舍五入((循环补偿/最大百分比),3);
//更新表:CommissionsV2数据库中的实体\产品\点。
CommissionsV2DataContext cv=新CommissionsV2DataContext();
实体_产品_点ev=新实体_产品_点();
ev.Entity_ID=getEntity;
ev.Product_ID=tr.First();
ev.HiCommissionOld=(双)第一个STYRCOMP;
ev.LowCommissionOld=(双)循环补偿;
ev.HICOMMISION=(双)最终财务报表*100;
ev.低佣金=(双)最终担保公司*100;
ev.DateCreated=System.DateTime.Now;
cv.实体、产品、积分、保险提交(ev);
简历提交变更();
var td=来自GetEntity()中的s
在s.Product\u ID等于r.Product\u ID的GetPlanName()中加入r
其中s.Entity_ID==getEntity
选择新的
{
s、 产品标识,
r、 PlanName,
s、 HiCommissionOld,
s、 低电荷二极管
};
gvShowComm.DataSource=td;
gvShowComm.DataBind();
}
捕获(异常错误)
{
MessageBox.Show(“+err”);
}
}
其他的
{
Show(“请为文本框输入条目!”);
}
tb1stYr.Text=“”;
tbmax.Text=“”;
tb.Text=“”;
ddlPlan.SelectedIndex=0;
}
受保护的void gvShowComm_行编辑(对象发送方,GridViewEditEventArgs e)
{
gvShowComm.EditIndex=e.NewEditIndex;
gvShowComm.DataBind();
}
受保护的无效gvShowComm_RowCancelingEdit(对象发送方,GridViewCancelEditEventArgs e)
{
gvShowComm.EditIndex=-1;
gvShowComm.DataBind();
}
受保护的void gvShowComm_行更新(对象发送方,GridViewUpdateEventArgs e)
{
System.Web.UI.WebControls.TextBox myBox=gvShowComm.Rows[e.RowIndex].FindControl(“PlanName”)为System.Web.UI.WebControls.TextBox;
字符串s=myBox.Text;
var keyValue = gvShowComm.DataKeys[e.RowIndex].Value;
int product = Convert.ToInt32(keyValue);
<asp:TemplateField HeaderText="Product Name">
<EditItemTemplate>
<asp:TextBox ID="TextBoxProductName" runat="server" Text='<%# Bind("Product_Name") %>'/>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="LabelProductName" runat="server" Text='<%# Bind("Product_Name") %>'/>
</ItemTemplate>
</asp:TemplateField>
gvShowComm.EditIndex = e.Row.RowIndex;
gvShowComm.DataKeys[e.RowIndex]["Product_Name"]