webForumDet fria alternativet

Hitta Controll i DataGrid, mha System.EventArgs

.NETur .NET

1 svar · 334 visningar · startad av Bjuris

Medlem sedan juli 2001514 inlägg
Frågan#1

Har en datagrid med följande utseende


<Columns>
	<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="&lt;img src=images/ok.gif border=0 Alt='Ok'&gt;"
	CancelText="&lt;img src=images/delete.gif border=0 Alt='Cancel'&gt;" EditText="&lt;img src=Images/edit.gif border=0">
		<ItemStyle Width="15px"></ItemStyle>
	</asp:EditCommandColumn>
	<asp:ButtonColumn Text="&lt;img src=images/delete.gif border=0 Alt='Delete'" CommandName="delete">
		<ItemStyle Width="15px"></ItemStyle>
	</asp:ButtonColumn>
	<asp:BoundColumn DataField="QuestionID" SortExpression="QuestionID" ReadOnly="True" HeaderText="id">
		<ItemStyle Wrap="False"></ItemStyle>
	</asp:BoundColumn>
	<asp:TemplateColumn SortExpression="Topic" HeaderText="Fråga">
		<ItemTemplate>
			<table>
				<tr>
					<td>
						<asp:Label Runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Topic")%>' Width=600 ID="lblTopic"/>
					</td>
				</tr>
				<tr>
					<td>
						<asp:RadioButton id="rbKan" runat="server" GroupName="Svar" Text="Kan"></asp:RadioButton>
						<asp:RadioButton id="rbKanDelvis" runat="server" GroupName="Svar" Text="Delvis"></asp:RadioButton>
						<asp:RadioButton id="rbKanInte" runat="server" GroupName="Svar" Text="Inte alls"></asp:RadioButton>
					</td>
				</tr>
				<tr>
					<td>
						Kommentar<br>
						<asp:textbox id="tbKommentar" runat="server" Width="506px" Rows="3" Height="50px" TextMode="MultiLine"></asp:textbox>
					</td>
				</tr>
			</table>
		</ItemTemplate>
		<EditItemTemplate>
			<asp:TextBox ID="EditTopic" Runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Topic")%>' Width=600/>
		</EditItemTemplate>
	</asp:TemplateColumn>
</Columns>

Den går ut på att det presenteras ett frågeformulär som användaren skall svara på.
När användaren sedan klickar på spara så skall hela DagaGriden skrivas mot en databas mha att gå igenom datasetet rad för rad:

i aspx.cs filen

private void btSave_Click(object sender, System.EventArgs e)
{
	lblError.Visible=true;	//för kontroll
	string test="";			//för kontroll
	foreach(DataGridItem dataGridItem  in DataGridTrace.Items)
	{
		int QuestionID = Convert.ToInt32(DataGridTrace.DataKeys[dataGridItem.ItemIndex]);
		TextBox Test = ((TextBox)DataGridTrace.FindControl("tbKommentar"));		
		test = Test.Text+ "2"; //för kontroll
		lblError.Text += QuestionID.ToString() + ", " +test + "<br>";
	}
}

Jag får ut QuestionID, där är inga problem men när jag vill få ut vad textBoxen tbKommentar innehåller så fungerar det inte, samma gäller mina radiobuttons.

Vad gör jag för fel?

Medlem sedan apr. 20012 266 inlägg
#2

Detta bör nog fungera:

TextBox Test = ((TextBox)[b]dataGridItem[/b].FindControl("tbKommentar"));
134 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)