1
工作在asp.net vs05.I我接受一個gridview並在RowDataBount下填充dropDownList。gridview DropDownList選擇值問題
<asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" DataKeyNames="StudentID" OnSelectedIndexChanged="GridView3_SelectedIndexChanged" OnRowDataBound="GridView3_RowDataBound">
<Columns>
<asp:BoundField DataField="StudentID" HeaderText="StudentID" ReadOnly="True" SortExpression="StudentID" />
<asp:BoundField DataField="StudentName" HeaderText="StudentName" />
<asp:TemplateField HeaderText="DivisionName">
<EditItemTemplate>
</EditItemTemplate>
<ItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" Width="160px">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Button" CommandName="Select" HeaderText="Update" Text="Update" />
</Columns>
</asp:GridView>
DropDownList DropDownList1 = (DropDownList)e.Row.FindControl("DropDownList1");
studentInfos ostudentInfos = new studentInfos();
BOstudentInfo oBOstudentInfo = new BOstudentInfo();
ostudentInfos = oBOstudentInfo.Gets();
DropDownList1.DataTextField = "StudentName";
DropDownList1.DataValueField = "StudentName";
DropDownList1.SelectedValue = "StudentName";
foreach (studentInfo oItem in ostudentInfos)
{
DropDownList1.Items.Add(oItem.StudentName);
}
然後使用SelectedIndexChanged事件
GridViewRow selectRow = GridView3.SelectedRow;
String ID = selectRow.Cells[0].Text;
String Name = selectRow.Cells[1].Text;
DropDownList ddl = (DropDownList) selectRow.FindControl("DropDownList1");
string s = ddl.SelectedValue;
在這種情況下,爲什麼我總是得到列表的selectedIndex = 0和的SelectedValue =第一要素。
+1良好的漁獲@adatapost。 – klabranche 2009-10-02 03:25:10