aspxでデータグリッドを書き込もうとしています。私のデータベースには、「PROJECT_NAME」という名前の列があります。これらの列をデータ グリッドに入れたいので、2 番目の列 (編集ボックス) を追加して、各プロジェクトごとに値を追加します。これはすべてグリッド ビューであり、フォームにボタンを追加します。ボタンを押すと、どの列の値がどのプロジェクトに属しているかをどのように理解できますか?
つまり、たとえば
- 行の値: プロジェクト 2 列の値: 50
- 行の値: B プロジェクト 2 列の値: 60
- 行の値: C プロジェクト 2 列の値: 70
ボタン 1 を押すタイミングを知りたいです。プロジェクト値 50 どうすればこれを理解できますか?
これは私のaspxコードです:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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>
<style type="text/css">
.style1
{
width: 78px;
}
.style2
{
width: 426px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div style="height: 561px">
<table style="width: 100%; height: 556px;">
<tr>
<td>
</td>
<td>
<table style="width:100%;">
<tr>
<td class="style1">
Ay</td>
<td>
<asp:TextBox ID="ay" runat="server"></asp:TextBox>
</td>
<td>
</td>
</tr>
<tr>
<td class="style1">
Yıl</td>
<td>
<asp:TextBox ID="yil" runat="server"></asp:TextBox>
</td>
<td>
</td>
</tr>
<tr>
<td class="style1">
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
<asp:GridView ID="portföy" runat="server"
CellPadding="3" GridLines="Horizontal"
AutoGenerateColumns="False"
DataKeyNames="PRJ_PROJECT_NAME" BackColor="White" BorderColor="#E7E7FF"
BorderStyle="None" BorderWidth="1px" Font-Bold="False" Font-Names="Verdana"
Font-Overline="False" Font-Size="Smaller" Width="1000px"
>
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
<Columns>
<asp:TemplateField HeaderText="PRJ_PROJECT_NAME" HeaderStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblProjeTT" runat="server" Text='<%# Bind("PRJ_PROJECT_NAME") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Left"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="Miktar (a/g)" HeaderStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:TextBox runat="server" id="txtField1" Text='<%# Bind("TAMAMLANMA_YUZDESI") %>'/>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" id="txtField1" Text='<%# Bind("TAMAMLANMA_YUZDESI") %>'/>
</EditItemTemplate>
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
</asp:TemplateField>
<asp:TemplateField HeaderText="" ShowHeader="False" HeaderStyle-HorizontalAlign="Center">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
<EditRowStyle BackColor="#FFFFA8" ForeColor="Black" />
<AlternatingRowStyle BackColor="#F7F7F7" />
</asp:GridView>
<table style="width:100%;">
<tr>
<td class="style2">
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
</td>
<td>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"
Width="149px" />
</td>
<td>
</td>
</tr>
<tr>
<td class="style2">
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
これは私のコードです:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OleDb;
using System.Data;
using System.Configuration;
public partial class _Default : System.Web.UI.Page
{
csOra cOra;
string oraTns = ConfigurationManager.AppSettings["TNS"];
string oraUserName = ConfigurationManager.AppSettings["OraUserName"];
string oraPassword = ConfigurationManager.AppSettings["OraPassword"];
protected void Page_Load(object sender, EventArgs e)
{
cOra = new csOra(oraTns, oraUserName, oraPassword);
if (cOra.OraCnn.State != ConnectionState.Open)
{
MessageBox.Show("Oracle ile bağlantı kurulamadı...");
return;
}
try
{
if (!IsPostBack)
{
setGrid();
}
}
catch (OleDbException ex)
{
Response.Write(@"Oracle Error:" + ex.Message);
return;
}
catch (Exception ex)
{
Response.Write(@"Error:" + ex.Message);
return;
}
}
void setGrid()
{
string sSQL = @"SELECT PRJ_PROJECT_NAME,TAMAMLANMA_YUZDESI
FROM PPIGANTT.KOKTEYL_TABLE_3
WHERE PRJ_PROJECT_NAME like '%d%'
ORDER BY Request_id";
try
{
OleDbDataAdapter oDa = new OleDbDataAdapter(sSQL, cOra.OraCnn);
DataTable portföy_ = new DataTable("KOKTEYL_TABLE_3");
oDa.Fill(portföy_);
if (portföy_.Rows.Count > 0)
{
portföy.DataSource = portföy_;
portföy.DataBind();
}
else
{
portföy_.Rows.Add(portföy_.NewRow());
portföy.DataSource = portföy_;
portföy.DataBind();
int TotalColumns = portföy.Rows[0].Cells.Count;
portföy.Rows[0].Cells.Clear();
portföy.Rows[0].Cells.Add(new TableCell());
portföy.Rows[0].Cells[0].ColumnSpan = TotalColumns;
portföy.Rows[0].Cells[0].Text = "No Record Found";
}
}
catch (OleDbException ex)
{
Response.Write(@"Oracle Error:" + ex.Message);
return;
}
catch (Exception ex)
{
Response.Write(@"Error:" + ex.Message);
return;
}
}
void UpdatePortföy(string Portföy, int bütçe )
{
string sSQL = @"BEGIN UPDATE PPIGANTT.KOKTEYL_TABLE_3
SET TAMAMLANMA_YUZDESI = " + bütçe + @"WHERE PRJ_PROJECT_NAME ='"
+ Portföy + @"' ; COMMIT; END;";
string sErr = "";
try
{
cOra.ExecNonQuery(sSQL, out sErr);
}
//setGrid();
catch (OleDbException ex)
{
Response.Write(@"Oracle Error:" + ex.Message);
return;
}
catch (Exception ex)
{
Response.Write(@"Error:" + ex.Message);
return;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
/* what can I write here to understand whic column value ?*/
}
}
ありがとう。