3
私はGridviewをデータベースからロードしました。 Gridviewには、BoundFields、Buttons、Textboxes、およびドロップダウンリストがあります。最初の行以外の行を選択すると、その行からデータを収集することができます。最初の行を選択すると、メソッドに貼り付けられている0がわかります。ドロップダウンリストとテキストボックスは私にデータを与えますが、BoundFieldはデータを与えません。C#Gridview返されないデータの最初の行
ASPファイル
<asp:GridView ID="GridViewListComp" runat="server" AutoGenerateColumns="False" BackColor="White"
BorderWidth="2px" Width="1500px"
onrowupdating="GridViewListComp_RowUpdated">
<Columns>
<asp:BoundField DataField="First_Name" HeaderText="First Name" SortExpression="First_Name" />
<asp:BoundField DataField="Last_Name" HeaderText="Last Name" SortExpression="Last_Name" />
<asp:BoundField ItemStyle-Width="75px" DataField="DOB" HeaderText="Date of Birth"
SortExpression="DOB" DataFormatString="{0:MM-dd-yy}" HtmlEncode="false">
<ItemStyle Width="75px"></ItemStyle>
</asp:BoundField>
<%--Policy Text Box Code--%>
<asp:TemplateField HeaderText="Policy">
<ItemTemplate>
<asp:TextBox ID="txtPolicy" runat="server" Text='<%# Eval("[POLICY_NUMBER]") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<%--Policy Text Box END--%>
<%--DropDown Code--%>
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<%-- <asp:DropDownList Width="50" runat="server" ID="ddlStatus" AutoPostBack="true" OnLoad="ddlStatus_onload" OnSelectedIndexChanged="ddlStatus_SelectedIndexChanged">--%>
<asp:DropDownList Width="180" runat="server" ID="ddlStatus" AutoPostBack="false" >
<asp:ListItem Text="Review" Value="R"></asp:ListItem>
<asp:ListItem Text="Pending" Value="P"></asp:ListItem>
<asp:ListItem Text="Paid Without Policy" Value="W"></asp:ListItem>
<asp:ListItem Text="Ready to Pay" Value="T"></asp:ListItem>
<asp:ListItem Text="Deduct" Value="D"></asp:ListItem>
<asp:ListItem Text="Matched" Value="M"></asp:ListItem>
<asp:ListItem Text="Paid without Policy Matched" Value="O"></asp:ListItem>
<asp:ListItem Text="Exceeded Payment Override" Value="E"></asp:ListItem>
<asp:ListItem Text="Fixed Cost" Value="F"></asp:ListItem>
<asp:ListItem Text="Other Insured" Value="I"></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<%--DropDown Code END--%>
<asp:ButtonField ItemStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" ItemStyle-Width="80px" ControlStyle-Width="70px"
ControlStyle-Height="30px" ButtonType="Button" CommandName="Update" HeaderText="Invoice ID" ShowHeader="True" Text="Update" />
<%--Paid Amount Text Box Code--%>
<asp:TemplateField HeaderText="Paid Amount">
<ItemTemplate>$<br />
<asp:TextBox Width="75px" ID="PAID_AMT" runat="server" Text='<%# Eval("[PAID_AMT]") %>' ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<%--Paid Amount Text Box END--%>
ファイル
protected void GridViewListComp_RowUpdated(object sender, GridViewUpdateEventArgs e)
{
int grIndex = e.RowIndex;
GridViewRow rowGr = GridViewListComp.Rows[grIndex];
string txtFName = GridViewListComp.Rows[grIndex].Cells[0].Text;
string txtLName = GridViewListComp.Rows[grIndex].Cells[1].Text;
string txtDOB = GridViewListComp.Rows[grIndex].Cells[2].Text;
string txtPolicy = ((TextBox)GridViewListComp.Rows[grIndex].FindControl("txtPolicy")).Text;
DropDownList ddl = GridViewListComp.Rows[grIndex].FindControl("ddlStatus") as DropDownList;
//gets the value of Status Dropdown list
string valueStatus = ddl.SelectedValue.ToString(); //This gets the value of Status
string txtPaidAmt = ((TextBox)GridViewListComp.Rows[grIndex].FindControl("PAID_AMT")).Text;
ちょうど頭の上からチェックせず...バインドフィールドが「値」またはDataFieldプロパティに設定されるように設定し、「テキスト」の属性が必要なのかテキスト/値属性(つまり、テキスト= "{0}" ...)暗闇の中でちょうど1ショット – Dave
ありがとうございましたDave、私はあなたがそのように見えるかもしれないものの例を持っているのですか? – MeGreeny
私が見つけたのはDataFormatString = "{0}"なので、うまくいかないかもしれません...あなたには解決策があるかもしれません... – Dave