ObjectDataSource QueryStringParameter v InsertParameters je 0   otázka

ASP.NET WebForms

Dobrý den přátelé,

obracím se na Vás s problémem s objectdatasource a formview. Při insertu se mi přenesou do objektu všechny vlastnosti z FormView až na parametr, který by se měl vložit z QueryStringu. Ten je stále roven 0. Pokroku se mi povedlo dosáhnout přidáním pomocného textboxu do FormView a bindingem na dannou vlastnost. Procpe se mi tam ale jen DefaultValue z QueryStringParameter(pokud je DefaultValue určena), samotnou hodnotu z querystringu se mi tam nedaří dostat, což je problem.

Na pomoc jsem si přizval strýčka Googla, ale povedlo se mi najít jen řešení v code behind. Lze toto řešit jen v markup?

Použitý kód:

	<asp:ObjectDataSource ID="SaveTimeSheet" runat="server" DataObjectTypeName="Employees.Entity.TimeSheetEntity" TypeName="Employees.Business.TimeSheetBusiness"
		InsertMethod="Save" >
		<InsertParameters>
			<asp:QueryStringParameter Type="Int32" QueryStringField="ID" Name="ContractId"  />
			<asp:Parameter Type="Int32" Name="UserId" />
			<asp:Parameter Name="Contract" Type="Object" />
			<asp:Parameter Name="User" Type="Object" />
			<asp:Parameter Type="DateTime" Name="Date" />
			<asp:Parameter Type="DateTime" Name="TimeFrom" />
			<asp:Parameter Type="DateTime" Name="TimeTo" />
			<asp:Parameter Type="Int16" Name="Break" />
			<asp:Parameter Type="String" Name="Note" />
		</InsertParameters>
	</asp:ObjectDataSource>
	<asp:FormView runat="server" DefaultMode="Insert" ID="DetailTimeSheet" DataKeyNames="Id, ContractId" DataSourceID="SaveTimeSheet">
		<InsertItemTemplate>
			<h1>Přidat pracovní výkaz</h1>
			<ul>
				<asp:TextBox runat="server" Text='<%# Bind("ContractId") %>' ID="TextBox5"></asp:TextBox>
				<li>
					<label>Jméno pracovníka</label>
					<asp:DropDownList runat="server" ID="ddlSelectFullName" DataSourceID="ContractUsers" DataTextField="FullName" DataValueField="UserId" SelectedValue='<%# Bind("UserId") %>'>
					</asp:DropDownList>
				</li>
				<li>
					<label>Datum</label>
					<asp:TextBox runat="server" Text='<%# Bind("Date") %>' ID="txtDate" />
				</li>
				<li>
					<label>Od</label>
					<asp:TextBox runat="server" Text='<%# Bind("TimeFrom") %>' ID="TextBox2" />
				</li>
				<li>
					<label>Do</label>
					<asp:TextBox runat="server" Text='<%# Bind("TimeTo") %>' ID="TextBox3" />
				</li>
				<li>
					<label>Přestávka</label>
					<asp:TextBox runat="server" Text='<%# Bind("Break") %>' ID="TextBox1" />
				</li>
				<li>
					<label>Poznámka</label>
					<asp:TextBox runat="server" Text='<%# Bind("Note") %>' ID="TextBox4" />
				</li>
				<li>
					<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" CommandName="Insert" Text="Vložit pracovní výkaz">
					</asp:LinkButton>
				</li>
			</ul>
		</InsertItemTemplate>
	</asp:FormView>

Předem děkuji za jakékoliv rady.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A v query daný parametr ve správném tvaru a formátu opravdu je?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano opravdu v query je, v code behind s ní pracuji a nastavuji ji dannému parametru.

SaveTimeSheet.InsertParameters["ContractId"].DefaultValue = Request.QueryString["ID"];

Ale toto mi přijde zbytečné.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback