Får inte till det. Svarar på mig själv. finns ett event som heter OnRowDataBound det är där du ska göra en ansats i stället Jag mednade OnRowDataBoundfast jag skrev OnDataBinding i mitt första inlägg...my bad. du kan ha kvar templaten , men i onrowdatabind, så gör du en findcontroll på det du vill förändra. ett litet sample på hur det kan se ut i rowdatabound Dindatacollectiontyp är beroende på vad du bundit för något från börja. Nu fick jag det att fungera som jag vill. Tusen tack.Värde från Web.Config till HyperLinkField i en GridView...
Har ett <asp:HyperLinkField....> i en GridView.
Till HyperLinkField finns DataNavigateUrlFormatString="\\server\sökväg\{0}".
Dvs. det ser ut ungefär såhär:
<asp:GridView ID="gvTest">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="DokNamn" DataNavigateUrlFormatString="\\server\sökväg\{0}" />
</Columns>
osv...
\\server\sökväg är för tillfället hårdkodat i aspx-filen enligt ovan.
Jag vill ha sökvägen i Web.Config (ConfigurationManager.AppSettings) och kunna använda den i DataNavigateUrlFormatString.
Hur kan man lösa det?
Har testat med OnDataBinding på GridView men inte fått det som jag vill...men det kanske är den vägen man måste gå?
Sv: Värde från Web.Config till HyperLinkField i en GridView...
Tills vidare löste jag det ungefär så här genom att använda TemplateField:
ASPX
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink ID="hlMyDocLink runat="server" NaviagteUrl='<# getDocUrl("DocName") #>' Text='<# Eval("DocName") #>' />
</ItemTemplate>
</asp:TemplateField>
ASPX.CS
private string getDocUrl(string docName)
{
string path = ConfigurationManager.AppSetting["MinSökväg"] + docName;
return path;
}
WEB.CONFIG
<appSettings>
<add key="MinSökväg" value="\\server\disk\katalog\" />
...
Gillar inte riktigt den här lösningen, men den funkar.
Sv:Värde från Web.Config till HyperLinkField i en GridView...
Sv: Värde från Web.Config till HyperLinkField i en GridView...
Tackar i alla fall.
Ska fortsätta försöka få till det med OnRowDataBound.
Den här GridView:n är byggd i designern. Det går rätt snabbt att använda den men det är ju inte jämt det bästa alternativet...
Så jag antar att jag ska plocka bort mitt templatefield från designläge och bygga den dynamiskt i "code-behind?Sv:Värde från Web.Config till HyperLinkField i en GridView...
och kör din metod där istället.Sv: Värde från Web.Config till HyperLinkField i en GridView...
void mygridview_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink myLink = (HyperLink)e.Row.FindControl("hlMyDocLink");
Dindatacollectiontyp data = (Dindatacollectiontyp)e.Row.DataItem;
}
}
Sv:Värde från Web.Config till HyperLinkField i en GridView...